With the latest code from SVN as of a half hour ago or so my Underfoot client crashes when I click "Enter World" from the character select screen. Looking at my nice little putty window I see this:
Code:
[Status] Booting poknowledge (202:0)
[Debug] The next weather check for zone: poknowledge will be in 10846 seconds.
[Status] Loading spawn conditions...
[Status] Loading static zone points...
[Status] Loading spawn groups...
[Status] Loading spawn2 points...
[Status] Loading player corpses...
[Status] Loading traps...
[Status] Loading adventure flavor text...
[Status] Loading ground spawns...
[Status] Loading Ground Spawns from DB...
[Status] Loading World Objects from DB...
[Status] Loading Objects from DB...
[Status] Loading doors for poknowledge ...
[Status] Loading Doors from database...
[Status] Loading Blocked Spells from database...
[Status] Loading AA information...
[Status] Loading AA Effects...
[Status] Loaded 1026 AA Effects.
[Status] Loading Merchant Lists...
[Status] Loading Temporary Merchant Lists...
[Status] Successfully loaded Zone Config.
[Status] Loading timezone data...
[Status] Init Finished: ZoneID = 202, Time Offset = 0
Map header: 105084 faces, 1107 nodes, 153620 facelists
Loaded map: 315252 vertices, 105084 faces
Map BB: (-408.00 -> 1560.00, -984.00 -> 984.00, -216.00 -> 720.00)
Map ./Maps/poknowledge.map loaded.
Water region map has 3603 nodes.
Water Map ./Maps/poknowledge.wtr loaded.
[Status] Path File Header: Version 2, PathNodes 632
[Status] Path File ./Maps/poknowledge.path loaded.
[Debug] Zone: poknowledge has weather of type 0.
[Debug] Zone: poknowledge(202) has no weather type. The weather timer has been disabled.
[Normal] Starting Log: logs/eqemu_zone.log
[Normal] ---- Zone server poknowledge, listening on port:7001 ----
[Status] Zone Bootup: poknowledge (202: 0)
Received Message SyncWorldTime
Time Broadcast Packet: EQTime [12:15 pm]
[Debug] [WORLD__CLIENT] New connection from 192.168.1.194:55954
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x2792
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch 6.2_world, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x2ec9
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch 6.2_zone, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x4dd0
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch Titanium_world, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x7213
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch Titanium_zone, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x6c3c
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch SoF_world, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x737e
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch SoF_zone, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0xff4
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch SoD_world, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x4b61 did not match expected 0x5a6b
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch SoD_zone, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode 0x3594 did not match expected 0x13da
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: Tried patch Underfoot_world, and it did not match.
[Debug] [NET__IDENT_TRACE] 192.168.1.194:55954: First opcode matched 0x4b61 and length matched 68
[Debug] [NET__IDENTIFY] Identified stream 192.168.1.194:55954 with signature Underfoot_zone
[Debug] [WORLD__CLIENT] New client from 192.168.1.194:55954
Unable to get group id, char not found!
Program received signal SIGSEGV, Segmentation fault.
I'm okay at debugging on windows, but not so much on linux sadly. But after running it inside of gdb I manage to get this backtrace:
Code:
0x00007ffff7b41221 in std::locale::operator=(std::locale const&) () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
(gdb) bt
#0 0x00007ffff7b41221 in std::locale::operator=(std::locale const&) () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
#1 0x00007ffff7b40926 in std::ios_base::_M_init() () from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
#2 0x00007ffff7b57329 in std::basic_ios<char, std::char_traits<char> >::init(std::basic_streambuf<char, std::char_traits<char> >*) ()
from /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/libstdc++.so.6
#3 0x00000000006f0fc1 in basic_istream (__vtt_parm=<optimized out>, this=0x7fffffffd370, __in_chrg=<optimized out>)
at /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/istream:589
#4 basic_iostream (__vtt_parm=<optimized out>, this=0x7fffffffd370, __in_chrg=<optimized out>)
at /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/istream:810
#5 basic_stringstream (__m=(std::_S_bin | std::_S_in | std::_S_out), this=0x7fffffffd370, __in_chrg=<optimized out>,
__vtt_parm=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.3/include/g++-v4/sstream:518
#6 Underfoot::SerializeItem (inst=0x145aa50, slot_id_in=0, length=0x7fffffffd92c, depth=0 '\000') at ../common/patches/Underfoot.cpp:3318
#7 0x00000000006f2868 in Underfoot::Strategy::Encode_OP_CharInventory (p=<optimized out>, dest=0x7fffd80008c0, ack_req=true)
at ../common/patches/Underfoot.cpp:1341
#8 0x00000000006e3716 in StructStrategy::Encode (this=<optimized out>, p=<optimized out>, dest=<optimized out>, ack_req=<optimized out>)
at ../common/StructStrategy.cpp:22
#9 0x00000000006b59df in EQStreamProxy::FastQueuePacket (this=<optimized out>, p=<optimized out>, ack_req=<optimized out>)
at ../common/EQStreamProxy.cpp:36
#10 0x00000000006b5834 in EQStreamProxy::QueuePacket (this=0x2300b20, p=<optimized out>, ack_req=true) at ../common/EQStreamProxy.cpp:30
#11 0x00000000004eccea in Client::QueuePacket (this=<optimized out>, app=<optimized out>, ack_req=<optimized out>,
required_state=<optimized out>, filter=<optimized out>) at client.cpp:725
#12 0x00000000004fa7f1 in Client::BulkSendInventoryItems (this=0x230e840) at client_process.cpp:886
#13 0x00000000005ecee4 in Client::FinishConnState2 (this=0x230e840, dbaw=<optimized out>) at client_packet.cpp:9201
#14 0x00000000005ed1d3 in Client::DBAWComplete (this=0x230e840, workpt_b1=<optimized out>, dbaw=<optimized out>) at client_packet.cpp:8626
#15 0x000000000055576f in DispatchFinishedDBAsync (dbaw=0x22f9d90) at zonedbasync.cpp:44
#16 0x0000000000504ed0 in main (argc=<optimized out>, argv=<optimized out>) at net.cpp:521
Now what I find puzzling is that it does this with the Underfoot client, but not the Titanium client.
Any and all help is greatly appreciated.