View Single Post
  #1  
Old 07-20-2007, 12:33 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default I got shmat issues...

I took a stab at fixing the 13th Floor Item import script (by actually fixing the Items table itself). On my Windows test box, all went swimmingly - server booted, I was able to log in and see the nearly 6,000 new items.

Sourced the new items table over to my Linux server, and it sh*t the bed, so to speak. When "world" launches, it spits out this error message:

Code:
failed to get 0-length shared mem: Cannot allocate memory
shmat failed! Invalid argument
Upon investigating what "shmat failed!" is, I tracked it down to MMF.ccp, around line 210 in the current CVS. It's in an "#IFDEF... #else //else, NOT WINDOWS" section. Which is why Windows seems fine, but Linux craps out.

Code:
			    if(share_id == -1) {
				    cerr << "failed to get 0-length shared mem: " << strerror(errno) << endl;
			    }
			    if ((lpvMem = shmat(share_id, NULL,SHM_RDONLY)) == (void *)-1) {
				    cerr << "shmat failed! " << strerror(errno) << endl;
			    }
Now, I know little next to nothing about C++, let alone shared memory. If there is a dev around that sees this, can you please advise what can be done to (maybe) expand the limits of shared memory on Linux servers? This is on a Fedora Core 4 box, if it matters.

I'd love to release a patch to the Items table for others, but right now I am uncertain the current code can handle it (not that many of the items are usable anyway )

For anyone ambitious enough to try a newer items table, grab it here. This was updated using teh 13thFloor Items file dated 7/6/2007 (or thereabouts).

Be sure to backup your data, eh? This likely will not work as much as you'd hope.
Reply With Quote