LPMuds.net

Lib Discussion => Dead Souls Support => Topic started by: nulvect on November 12, 2006, 08:02:28 pm

Title: Seg faults on 64-bit
Post by: nulvect on November 12, 2006, 08:02:28 pm

I am testing DS 2.1.1 on SuSe 10.1 (64-bit) environment and I keep getting seg faults. Under gdb, I found this error:



This GDB was configured as "x86_64-suse-linux"...Using host libthread_db library "/lib64/libthread_db.so.1".



"/home/test/mud/ds/ds2.1.1/bin/mudos.cfg" is not a core dump: File format not recognized



Any ideas on how to fix this to run under 64-bit environments?



-- M

Title: Seg faults on 64-bit
Post by: cratylus on November 12, 2006, 08:28:23 pm

It sounds like you're trying to run gdb with mudos.cfg configured

as a corefile. Try the following:



# cd /home/test/mud/ds/ds2.1.1/bin/

# gdb ./driver core

(gdb) run ./mudos.cfg





This should provide useful output.



Unfortunately, I am poor and cannot afford a fancy

64 bit intel system to test on, so I have not been able to

track down this problem for sure. However, I can

tell you that compiling it while booted in 32 bit mode

should produce a binary runnable in 64 bit mode.



Sorry I can't be more help.


-Crat

http://dead-souls.net

Title: Seg faults on 64-bit
Post by: nulvect on November 12, 2006, 08:57:05 pm

Operating Environment: AMD Opteron, Model 165 Dual-Core

O/S Environment: OpenSuSe V10.1, 64-Bit build

Linux Kernel: 2.6.16.21-0.25-smp



Ok, here is the gdb output result:



Starting program: /home/test/mud/ds/ds2.1.1/bin/driver ./mudos.cfg

using config file: ./mudos.cfg

Initializing internal tables....

----------------------------------------------------------------------------

TestMud (MudOS v22.2b14) starting up on Linux - Sun Nov 12 23:54:00 2006



Connection to address server (localhost 9999) refused.



Program received signal SIGSEGV, Segmentation fault.

0x000000000045bc14 in smalloc_free (ptr=0x2aef68d70d1c) at malloc.c:237

237         *s_next_ptr(block) = sfltable;





---



I am just trying to compile the driver code to show at least I can actively support it for anyone that wants to use my game hosting services in the future.



Cratylus: If you need a place to test 64-bit code, just let me know. I got alot of room on the server and a stable net connection and would be happy to setup a free account for such testing purposes.  :-)

Title: Seg faults on 64-bit
Post by: cratylus on November 12, 2006, 09:10:35 pm

Yep, that's a segfault all right :)



All I can suggest is also playing around with strace to

get a realtime look at the last thing the program was doing

when it died.



Other than, that, I hate to say it, but I really can't help

unless I have a machine to reproduce this on.





EDIT:



Awesome. sure I'd love a chance to play with this.

PM me with what you need from me

-Crat

http://dead-souls.net

Title: Seg faults on 64-bit
Post by: cratylus on November 13, 2006, 04:04:29 am

Ok, I can definitely reproduce the problem. I'll work

on it this evening. Thanks for the access.


-Crat

http://dead-souls.net

Title: Seg faults on 64-bit
Post by: cratylus on November 21, 2006, 01:13:36 pm

Mystery solved.



It appears that the build-in malloc in MudOS doesn't

work well on some systems. I'm not clear on whether the

problem is being 64-bit, or multicored, or both. But whatever

the exact cause, this is the fix:



modify these lines in local_options:



#undef SYSMALLOC

#define SMALLOC

#define DO_MSTATS



to look like this:



#define SYSMALLOC

#undef SMALLOC

#undef DO_MSTATS



And then do your compile.

-Crat

http://dead-souls.net