Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::Linux Servers

Support::Linux Servers Support forum for Linux EQEMu users.

Reply
 
Thread Tools Display Modes
  #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
  #2  
Old 08-16-2007, 05:07 PM
gernblan
Discordant
 
Join Date: Aug 2006
Posts: 394
Default

Thank you!

I'll play with this on my dev server (it's running Ubuntu at the moment) and if I can duplicate this problem and solve it, I'll tell you what I did to do so
__________________
--
Keelyeh
Owner, ServerOp and Developer
Jest 4 Server
Linux (Jest3 runs on Fedora, our Dev servers usually run on Ubuntu and/or Gentoo), OC-12 Connection = Hella Fast
Reply With Quote
  #3  
Old 08-16-2007, 05:18 PM
gernblan
Discordant
 
Join Date: Aug 2006
Posts: 394
Default

For one thing, what's with all the extra fields?

Not that they will get in the way, per se, but they are certainly not needed and make db merging a whole lot more difficult.
__________________
--
Keelyeh
Owner, ServerOp and Developer
Jest 4 Server
Linux (Jest3 runs on Fedora, our Dev servers usually run on Ubuntu and/or Gentoo), OC-12 Connection = Hella Fast
Reply With Quote
  #4  
Old 08-17-2007, 02:40 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

It is how you fix the 13th floor import .pl. Columns have to match 13th Floor data file. As for merging, that's an individuals problem. All I did was find a way to get the latest 13th Floor into a raw, non-customized Items table. The extra columns are new attribs for (maybe) the newer items from that data source.

Then, ran into problems with nearing the max item ID ceiling, and this thing on Linux which I have had no time to look into. If you can fix it, great!
Reply With Quote
  #5  
Old 09-01-2007, 04:43 AM
gernblan
Discordant
 
Join Date: Aug 2006
Posts: 394
Default

Still working on this. It's not a max items thing... something else is strange.
__________________
--
Keelyeh
Owner, ServerOp and Developer
Jest 4 Server
Linux (Jest3 runs on Fedora, our Dev servers usually run on Ubuntu and/or Gentoo), OC-12 Connection = Hella Fast
Reply With Quote
  #6  
Old 09-02-2007, 01:44 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Remember, it appears fine on Windows and is only in the "not win32" code. Not sure if that helps narrow the search...
Reply With Quote
  #7  
Old 09-04-2007, 07:56 AM
sdabbs65
Dragon
 
Join Date: Dec 2003
Location: Earth
Posts: 818
Default ..

Quote:
Originally Posted by John Adams View Post
Remember, it appears fine on Windows and is only in the "not win32" code. Not sure if that helps narrow the search...
Dunno if this helps but I got this fro ma old thread...

Too many items, edit
common/Items.h
and change the value of
#define MMF_EQMAX_ITEMS 85000
to find the number of items in your database, run the following query :
select max(id) from items;
__________________
hosting Eqemu/Runuo/wow Emulators.

www.cheaterz.info
Reply With Quote
  #8  
Old 09-04-2007, 06:47 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Thanks sdabbs. The item id's are still a few thousand below the current max (100,000), so I don't think that's the issue on Linux. Especially because Windows emu doesn't seem to have the problem. I guess I need to learn what a shmat is.
Reply With Quote
  #9  
Old 09-04-2007, 10:03 PM
sdabbs65
Dragon
 
Join Date: Dec 2003
Location: Earth
Posts: 818
Default ...

Quote:
Originally Posted by John Adams View Post
I guess I need to learn what a shmat is.
Isn't it that monkey from buck rodgers?
http://man.he.net/man2/shmat
__________________
hosting Eqemu/Runuo/wow Emulators.

www.cheaterz.info
Reply With Quote
  #10  
Old 09-05-2007, 05:09 PM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Crap, now I know _everything_! What will I do now?

Thanks man, that sheds a little more light on the problem.
Reply With Quote
  #11  
Old 09-13-2007, 09:37 AM
Lalolyen
Banned
 
Join Date: Aug 2007
Location: Sneeking up behind a admin IRL
Posts: 169
Default

JA are you still having this problem? I think I hit a problem simular to this about a week ago and fixed it....
Reply With Quote
  #12  
Old 09-14-2007, 07:23 AM
John Adams
Demi-God
 
Join Date: Jul 2006
Posts: 1,552
Default

Only when I source in the new 13th Floor items list on Linux, yes.

The PEQ Items table is fine.

I'll take a fix if ya got one.
Reply With Quote
  #13  
Old 10-20-2007, 10:18 AM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

Has anyone found a fix for this? I'm starting to look at this myself and am somewhat baffled by why the shmget function call is failing at line 205 of MMF.cpp.
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
Reply With Quote
  #14  
Old 10-20-2007, 01:00 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

The solution to this problem isnt in the server code. Its fixable by your distros configuration. You need to increase the value in your /proc/sys/kernel/shmmax file to some value greater than 32 MB. The value in that files in is bytes and its probably going to vary from distro to distro. I'm not sure what a good value is, but i can confirm setting it to 100 MB does allow us to import the current 13th floor items table.

Enjoy!

I also want to thank both Cavedude and FatherNitWit for assisting me in identifying this issue and testing the solution. I believe you can expect PEQ to have a current items table in the next few days now.
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!

Last edited by WildcardX; 10-20-2007 at 09:15 PM..
Reply With Quote
  #15  
Old 10-21-2007, 02:53 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Here we are, a brand new items table consisting of the newest 13th floor dump as of this morning (62,000+ items) Stackable items work, and I made the appropriate changes to the columns so all the data got converted and merged in. I've been testing it all morning and had no issues (other than pre-existing ones in the Emu code of course) so it looks like we are good.

http://projecteq.net/items_102107.rar

As Wild said, Linux users will probably need to bump your /proc/sys/kernel/shmmax file a bit. Windows users need not do anything.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 05:05 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3