H-uru / dirtsand

The D'ni in Real-Time Server and Network Dæmon
GNU Affero General Public License v3.0
35 stars 24 forks source link

NPC Clone Unloading Crash #110

Closed Hoikas closed 7 years ago

Hoikas commented 7 years ago

Commit 450107d introduced a segmentation fault on gcc 5.4.0. If there are any NPC clones loaded by a game host, the segmentation fault occurs when unreffing and deleting the stored clone message. To reproduce this issue, link to sphere 1 of Ahnonay with loaded quabs, then link to Relto. DS will crash on link out.

Segfault at bin/dirtsand() [0x52a284] /home/adamj/dev/dirtsand/dsmain.cpp:89
    from bin/dirtsand() [0x52a3ac] /home/adamj/dev/dirtsand/dsmain.cpp:108 (discriminator 16)
    from /lib/x86_64-linux-gnu/libc.so.6(+0x354b0) [0x7f46ec4244b0]
    from bin/dirtsand(_ZN4MOUL9Creatable10safe_unrefEPS0_+0x49) [0x515828] /home/adamj/dev/dirtsand/PlasMOUL/creatable.h:44 (discriminator 1)
    from bin/dirtsand(_ZN4MOUL9Creatable5unrefEv+0x18) [0x515882] /home/adamj/dev/dirtsand/PlasMOUL/creatable.h:57
    from bin/dirtsand(_Z16dm_game_shutdownP16GameHost_Private+0x101) [0x50ee40] /home/adamj/dev/dirtsand/GameServ/GameHost.cpp:74 (discriminator 2)
    from bin/dirtsand(_Z11dm_gameHostP16GameHost_Private+0x5e) [0x51418c] /home/adamj/dev/dirtsand/GameServ/GameHost.cpp:810
    from bin/dirtsand(_ZNSt12_Bind_simpleIFPFvP16GameHost_PrivateES1_EE9_M_invokeIJLm0EEEEvSt12_Index_tupleIJXspT_EEE+0x40) [0x523708] /usr/include/c++/5/functional:1532
    from bin/dirtsand(_ZNSt12_Bind_simpleIFPFvP16GameHost_PrivateES1_EEclEv+0x2c) [0x523612] /usr/include/c++/5/functional:1520
    from bin/dirtsand(_ZNSt6thread5_ImplISt12_Bind_simpleIFPFvP16GameHost_PrivateES3_EEE6_M_runEv+0x1c) [0x5235a2] /usr/include/c++/5/thread:115
    from /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xb8c80) [0x7f46ecca3c80]
    from /lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba) [0x7f46ec7bf6ba]
    from /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7f46ec4f582d]
Segmentation fault
Hoikas commented 7 years ago

:trollface: I guess my brain was fried when I filed this bug. Easy fix 👅