#391 ASan on shutdown of eq2world without debug (improper shutdown of eq2world)

Closed
opened 2 years ago by image · 0 comments
image commented 2 years ago
==771377==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x6210010b1d00 in thread T0:
  object passed to delete has wrong type:
  size of the allocated type:   4144 bytes;
  size of the deallocated type: 2456 bytes.
    #0 0x7ff4d928c025 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025)
    #1 0x5596af52ae73 in Database::PurgeDBInstances() ../common/database.cpp:468
    #2 0x5596af52a63d in Database::~Database() ../common/database.cpp:216
    #3 0x5596aff38e0c in WorldDatabase::~WorldDatabase() ../WorldServer/WorldDatabase.cpp:82
    #4 0x7ff4d8aa3a26  (/lib/x86_64-linux-gnu/libc.so.6+0x49a26)
    #5 0x7ff4d8aa3bdf in exit (/lib/x86_64-linux-gnu/libc.so.6+0x49bdf)
    #6 0x7ff4d8a810b9 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b9)
    #7 0x5596af43a43d in _start (/mnt/Dev/github/eq2emu_public/EQ2EMu/server/eq2world+0x20e43d)

0x6210010b1d00 is located 0 bytes inside of 4144-byte region [0x6210010b1d00,0x6210010b2d30)
allocated by thread T14 here:
    #0 0x7ff4d928a947 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10f947)
    #1 0x5596af52b6b2 in Database::FindFreeInstance() ../common/database.cpp:451
    #2 0x5596af52c53f in Database::RunAsyncQueries(unsigned int) ../common/database.cpp:343
    #3 0x5596af52ecf4 in DBAsyncQueries(void*) ../common/database.cpp:77
    #4 0x7ff4d9145608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477

Thread T14 created by T11 here:
    #0 0x7ff4d91b5805 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a805)
    #1 0x5596af530a8b in Database::AddAsyncQuery(Query*) ../common/database.cpp:429
    #2 0x5596af5319f2 in Query::AddQueryAsync(unsigned int, Database*, QUERY_TYPE, char const*, ...) ../common/database.cpp:248
    #3 0x5596aff36e85 in WorldDatabase::Save(Client*) ../WorldServer/WorldDatabase.cpp:3979
    #4 0x5596afbe9cc8 in Client::Save() ../WorldServer/client.cpp:4217
    #5 0x5596afbe9ec8 in Client::Disconnect(bool) ../WorldServer/client.cpp:3647
    #6 0x5596af73e988 in ZoneServer::ClientProcess() ../WorldServer/zoneserver.cpp:3205
    #7 0x5596af750e75 in ZoneServer::Process() ../WorldServer/zoneserver.cpp:1408
    #8 0x5596af763654 in ZoneLoop(void*) ../WorldServer/zoneserver.cpp:6863
    #9 0x7ff4d9145608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477

Thread T11 created by T0 here:
    #0 0x7ff4d91b5805 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a805)
    #1 0x5596af70efd0 in ZoneServer::Init() ../WorldServer/zoneserver.cpp:309
    #2 0x5596af550b8c in ZoneList::Get(unsigned int, bool) ../WorldServer/World.cpp:595
    #3 0x5596afbe80e4 in Client::SetCurrentZone(unsigned int) ../WorldServer/client.cpp:3369
    #4 0x5596aff57273 in WorldDatabase::loadCharacter(char const*, unsigned int, Client*) ../WorldServer/WorldDatabase.cpp:1784
    #5 0x5596afc951ef in Client::HandleNewLogin(unsigned int, unsigned int) ../WorldServer/client.cpp:9814
    #6 0x5596afc9a7a4 in Client::HandlePacket(EQApplicationPacket*) ../WorldServer/client.cpp:1065
    #7 0x5596afcbbbc8 in Client::Process(bool) ../WorldServer/client.cpp:3006
    #8 0x5596afcbea17 in ClientList::Process() ../WorldServer/client.cpp:3301
    #9 0x5596b0097820 in main ../WorldServer/net.cpp:458
    #10 0x7ff4d8a810b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)

SUMMARY: AddressSanitizer: new-delete-type-mismatch (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025) in operator delete(void*, unsigned long)
``` ==771377==ERROR: AddressSanitizer: new-delete-type-mismatch on 0x6210010b1d00 in thread T0: object passed to delete has wrong type: size of the allocated type: 4144 bytes; size of the deallocated type: 2456 bytes. #0 0x7ff4d928c025 in operator delete(void*, unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025) #1 0x5596af52ae73 in Database::PurgeDBInstances() ../common/database.cpp:468 #2 0x5596af52a63d in Database::~Database() ../common/database.cpp:216 #3 0x5596aff38e0c in WorldDatabase::~WorldDatabase() ../WorldServer/WorldDatabase.cpp:82 #4 0x7ff4d8aa3a26 (/lib/x86_64-linux-gnu/libc.so.6+0x49a26) #5 0x7ff4d8aa3bdf in exit (/lib/x86_64-linux-gnu/libc.so.6+0x49bdf) #6 0x7ff4d8a810b9 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b9) #7 0x5596af43a43d in _start (/mnt/Dev/github/eq2emu_public/EQ2EMu/server/eq2world+0x20e43d) 0x6210010b1d00 is located 0 bytes inside of 4144-byte region [0x6210010b1d00,0x6210010b2d30) allocated by thread T14 here: #0 0x7ff4d928a947 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x10f947) #1 0x5596af52b6b2 in Database::FindFreeInstance() ../common/database.cpp:451 #2 0x5596af52c53f in Database::RunAsyncQueries(unsigned int) ../common/database.cpp:343 #3 0x5596af52ecf4 in DBAsyncQueries(void*) ../common/database.cpp:77 #4 0x7ff4d9145608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477 Thread T14 created by T11 here: #0 0x7ff4d91b5805 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a805) #1 0x5596af530a8b in Database::AddAsyncQuery(Query*) ../common/database.cpp:429 #2 0x5596af5319f2 in Query::AddQueryAsync(unsigned int, Database*, QUERY_TYPE, char const*, ...) ../common/database.cpp:248 #3 0x5596aff36e85 in WorldDatabase::Save(Client*) ../WorldServer/WorldDatabase.cpp:3979 #4 0x5596afbe9cc8 in Client::Save() ../WorldServer/client.cpp:4217 #5 0x5596afbe9ec8 in Client::Disconnect(bool) ../WorldServer/client.cpp:3647 #6 0x5596af73e988 in ZoneServer::ClientProcess() ../WorldServer/zoneserver.cpp:3205 #7 0x5596af750e75 in ZoneServer::Process() ../WorldServer/zoneserver.cpp:1408 #8 0x5596af763654 in ZoneLoop(void*) ../WorldServer/zoneserver.cpp:6863 #9 0x7ff4d9145608 in start_thread /build/glibc-eX1tMB/glibc-2.31/nptl/pthread_create.c:477 Thread T11 created by T0 here: #0 0x7ff4d91b5805 in pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3a805) #1 0x5596af70efd0 in ZoneServer::Init() ../WorldServer/zoneserver.cpp:309 #2 0x5596af550b8c in ZoneList::Get(unsigned int, bool) ../WorldServer/World.cpp:595 #3 0x5596afbe80e4 in Client::SetCurrentZone(unsigned int) ../WorldServer/client.cpp:3369 #4 0x5596aff57273 in WorldDatabase::loadCharacter(char const*, unsigned int, Client*) ../WorldServer/WorldDatabase.cpp:1784 #5 0x5596afc951ef in Client::HandleNewLogin(unsigned int, unsigned int) ../WorldServer/client.cpp:9814 #6 0x5596afc9a7a4 in Client::HandlePacket(EQApplicationPacket*) ../WorldServer/client.cpp:1065 #7 0x5596afcbbbc8 in Client::Process(bool) ../WorldServer/client.cpp:3006 #8 0x5596afcbea17 in ClientList::Process() ../WorldServer/client.cpp:3301 #9 0x5596b0097820 in main ../WorldServer/net.cpp:458 #10 0x7ff4d8a810b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) SUMMARY: AddressSanitizer: new-delete-type-mismatch (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x111025) in operator delete(void*, unsigned long) ```
Sign in to join this conversation.
Loading...
Cancel
Save
There is no content yet.