EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Linux Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=588)
-   -   r2097 and r2099 and Debian x64 (https://www.eqemulator.org/forums/showthread.php?t=34839)

provocating 02-04-2012 01:27 AM

r2097 and r2099 and Debian x64
 
I have been running up to r2091 fine with Debian 6 x64. When r2097 came out, I compiled it on my server and compiling went normal. I had to change my makefiles to Athlon64, nothing new there. Loginserver, world and zone go fine. At some point during login the zone gives a segmentation fault. I checked everything multiple times, recompiled, nothing. You get to the point of logging in, and you can see the segmentation fault in Putty. There is no dump file for me to inspect either, and no other error.

Just to be safe I made a new virtual machine, just as a test bed so my server could keeping running, there is nothing wrong with r2091, I just want to keep up with SVN. I installed Debian 6 again, x64 style and subversion'd r2099 this time, and grabbed the last two SQL updates which are 2098 and 2099 sql changes. I sourced in my existing running database that is up to r2091, which I know is fine, and applied both of the new updates. Same thing here, a segmentation fault at login. I know there was a PERL change recently, and the PERL running on mine is v5.10.1 but I am thinking it has nothing to do with PERL. Ideas ?

lerxst2112 02-04-2012 01:35 AM

Run zone in gdb, and when it crashes you can type bt and see the callstack where it crashed.

provocating 02-04-2012 01:48 AM

Code:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7b34d61 in std::locale::operator=(std::locale const&) ()
  from /usr/lib/libstdc++.so.6
(gdb) bt
#0  0x00007ffff7b34d61 in std::locale::operator=(std::locale const&) ()
  from /usr/lib/libstdc++.so.6
#1  0x00007ffff7b3383f in std::ios_base::_M_init() ()
  from /usr/lib/libstdc++.so.6
#2  0x00007ffff7b48369 in std::basic_ios<char, std::char_traits<char> >::init(st                                                                                                d::basic_streambuf<char, std::char_traits<char> >*) ()
  from /usr/lib/libstdc++.so.6
#3  0x00000000007342e6 in basic_istream (inst=0x7fffe80425e0,
    slot_id_in=<value optimized out>, length=<value optimized out>,
    depth=<value optimized out>) at /usr/include/c++/4.4/istream:583
#4  basic_iostream (inst=0x7fffe80425e0, slot_id_in=<value optimized out>,
    length=<value optimized out>, depth=<value optimized out>)
    at /usr/include/c++/4.4/istream:799
#5  basic_stringstream (inst=0x7fffe80425e0, slot_id_in=<value optimized out>,
    length=<value optimized out>, depth=<value optimized out>)
    at /usr/include/c++/4.4/sstream:511
#6  SoD::SerializeItem (inst=0x7fffe80425e0, slot_id_in=<value optimized out>,
    length=<value optimized out>, depth=<value optimized out>)
    at ../common/patches/SoD.cpp:2930
#7  0x0000000000735b23 in SoD::Strategy::Encode_OP_CharInventory (
    p=<value optimized out>, dest=<value optimized out>,
    ack_req=<value optimized out>) at ../common/patches/SoD.cpp:1313
#8  0x000000000073830c in StructStrategy::Encode (this=0x7fffffffdca8,
    p=0x7fffffffdca8, dest=0x7fffffffdaf0, ack_req=255)
    at ../common/StructStrategy.cpp:22
#9  0x0000000000709dbf in EQStreamProxy::FastQueuePacket (
    this=<value optimized out>, p=0x7fffffffdaf0, ack_req=false)
    at ../common/EQStreamProxy.cpp:36
#10 0x0000000000709c28 in EQStreamProxy::QueuePacket (this=0x7fffe8034020,
    p=<value optimized out>, ack_req=255) at ../common/EQStreamProxy.cpp:30
#11 0x00000000004ce2f1 in Client::QueuePacket (this=<value optimized out>,
    app=0x7fffffffdaf0, ack_req=255, required_state=Mob::CLIENT_CONNECTING,
    filter=4158439456) at client.cpp:706
#12 0x00000000004f10d2 in Client::BulkSendInventoryItems (
    this=<value optimized out>) at client_process.cpp:936
#13 0x00000000005cbdcc in Client::FinishConnState2 (this=0x7fffe806a140,
    dbaw=<value optimized out>) at client_packet.cpp:8727
#14 0x00000000005da47d in Client::DBAWComplete (this=0x7fffffffdca8,
    workpt_b1=<value optimized out>, dbaw=0xffffffff) at client_packet.cpp:8166
#15 0x000000000054d65e in DispatchFinishedDBAsync (dbaw=0x7fffe8042540)
    at zonedbasync.cpp:44
#16 0x00000000004fe06e in main (argc=<value optimized out>,
    argv=<value optimized out>) at net.cpp:521
(gdb)


lerxst2112 02-04-2012 04:33 AM

Ah, this old issue...

http://www.eqemulator.org/forums/sho...t=optimization

provocating 02-04-2012 11:01 AM

Yep, that fixed it. Even comparing my old makefile I missed the -O that I had removed last time. I have it in my compile notes to remove it next time. Much thanks for the assistance.

Huppy 02-12-2012 07:59 PM

Just an added note to this,

I run debian 6 on my 64 bit machine, but use the 2.6.32-686-5-bigmem kernel so it runs all 16 gigs of ram. I also use -march=native in the makefiles. Everything seems to compile and run ok, but I guess it's a preference.

provocating 02-12-2012 08:04 PM

I did -march=athlon64 on mine.


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

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.