Description:
Nefarius has a event where summons Glyth and then, Warchief Rend Blackhand should go down to fight.
Current behaviour:
(Having MaxCoreStuckTime = 30)
After killing Gyth, and waiting for Warchief Rend Blackhand to go down, worldserver freezes.
Worldserver will freeze everytime that the character who did that, tries to enter the instance again after causing the first freeze.
I have 'backtrace' but I do not know if it will be useful since it is just worldserver freezing.
Steps to reproduce the problem:
Branch: 3.3.5
Rev: ce46a0d53c3dbd6d2837020686e3880d98c545ed
OS: Debian 9 / Windows 8.1 / Windows 7
Edit: When Warchief Rend Blackhand should go down, he "goes inside" Blackwing Lair, stands there for a few seconds, disappears and it is that moment when worldserver freezes.
https://ibb.co/cT8UsK
please post the crashlog too, it should contain the stacktrace of the "frozen" Map thread too (even better if it was built in debug)
hmm, possible despawn/respawn loop with that script (logic spread across multiple files)
it would be nice when providing how to reproduce steps to actually give how to reproduce steps. A gm command with gps coordinates or .tele would be much better than "Go to Nefarius"
I will edit it after work.
Thank you for the advice, I will apply it from now.
ConFirm
Thanks for the steps. This event feels quite stage as I got the yells twice, even before killing Gyth.
It seems like Map::ProcessRespawns() keeps respawning over and over entry 10429 spawnId 137968
It feels like the script author is trying to despawn Rend Blackhand throughout DisappearAndDie() but that function actually schedules a respawn too.
I might have solved this in https://github.com/TrinityCore/TrinityCore/pull/22401, which is still WIP.
I've been busy lately but will get back to it soon.
This particular edge case I didn't consider, but it's happening because rend has a 1sec respawn timer and the instance considers the event done if only Gyth is killed.
Rend respawning is also what's causing the event to repeat while fighting Gyth.
DisappearAndDie should never be used anymore... DespawnOrUnsummon should have replaced it long ago in all scripts
Mass replace inc!
Most helpful comment
https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp#L103 is respawning Blackhand over and over