Closed Razfury closed 5 years ago
Tryed, i can't reproduce issue :thinking:
@Razfury to be able to use a dmp file we would need more information. A dmp does not contain much on it's own. See https://docs.microsoft.com/en-us/visualstudio/debugger/using-dump-files?view=vs-2017#BKMK_Find_binaries__symbol___pdb__files__and_source_files
@Rochet2 Ah sorry! here you go has the dmp, exe and pdb included, and crashlog
https://pastebin.com/VMzYHrea - crashlog
https://ufile.io/0fvjz I assume you have the dlls needed? the core has them in openssl
You have not provided the source code or a commit hash so its hard to use the dmp still. The pastebin seems useless to me. Not sure why its so empty. Its missing data, such as the core hash. The pastebin link also contains the string "SunwellCore", which doesnt seem to exist on azerothcore as seen here where all results are either comments or readme:
$ grep -R --exclude-dir=.git "SunwellCore" .
./data/doc/_Sidebar.md:* [[Original SC Description|Original-SunwellCore-Description]]
./README.md:It is written in C++ and based on MaNGOS, TrinityCore and SunwellCore.
./README.md:- The SunwellCore developers **xinef** and **pussywizard**
./src/server/authserver/resource.h:// Used by SunwellCore.rc
./src/server/worldserver/resource.h:// Used by SunwellCore.rc
For now I did get this callstack extracted from the dmp exe and pdb:
worldserver.exe!std::list<unsigned int,std::allocator<unsigned int> >::begin() Line 1119 C++
> worldserver.exe!InstanceSaveManager::UnbindAllFor(InstanceSave * save=0x35f588a0) Line 773 C++
worldserver.exe!Group::ResetInstances(unsigned char method='\x1', bool isRaid=false, Player * leader=0x9e9df1d8) Line 1991 C++
worldserver.exe!WorldSession::HandleSetDungeonDifficultyOpcode(WorldPacket & recv_data={...}) Line 1411 C++
worldserver.exe!WorldSession::Update(unsigned int diff=15, PacketFilter & updater={...}) Line 290 C++
worldserver.exe!World::UpdateSessions(unsigned int diff=15) Line 2529 C++
worldserver.exe!World::Update(unsigned int diff=15) Line 1930 C++
worldserver.exe!WorldRunnable::run() Line 59 C++
worldserver.exe!ACE_Based::Thread::ThreadTask(void * param=0x5802a430) Line 186 C++
It seems to suggest that for some reason in InstanceSaveManager::UnbindAllFor
the InstanceSave* save
save->m_playerList.begin() will crash.
For some reason the list is reported to have invalid size pList | { size=3722304989 } | std::list<unsigned int,std::allocator<unsigned int> > &
, which is probably why the access violation happens. The save itself seems to be invalid.
Interestingly the function that calls the unbind passes saves to the unbind from toUnbind vector, which has two elements (one invalid and one valid pointer), however m_boundInstances from which the pointers come from only has one element. However I cannot see what would delete the instance or otherwise cause an invalid instance to be added in this code and the core should be running only single thread at this time (maps are threaded, session update is not).
Just had this happen again same everything it is related to what you said above.
SMALL DESCRIPTION:
Server crashes, something with instances
EXPECTED BLIZZLIKE BEHAVIOUR:
I'm not sure I just have crashdump could be related to #723
CURRENT BEHAVIOUR:
STEPS TO REPRODUCE THE PROBLEM:
BRANCH(ES):
master
AC HASH/COMMIT:
OPERATING SYSTEM:
win 7
MODULES:
no
OTHER CUSTOMIZATIONS:
no other custom
crashdump.zip
I've included the .exe also, this was compiled in debug mode