Trinitycore: [Crash] _defaultGenerator->Deactivate #

Created on 23 Apr 2019  路  14Comments  路  Source: TrinityCore/TrinityCore

Description: warning: Not specified

Crash log
https://gist.github.com/HAANAAE/704f017e160faa782256d45bf01ae1c1

Branch(es): 3.3.5
TC rev. hash/commit: b33934f
Operating system: debian

Branch-3.3.5a HasBacktrace Sub-Movement

Most helpful comment

Crash reproduced

As the spell has a 9 seconds duration, one has to log back in before the spell expires to trigger the crash

All 14 comments

Character loads with a confuse aura (rogue blind?)
MotionMaster is not initialized until after LoadFromDB finishes

Invalidate the aura while loading?
Prevent the aura from saving?
Make MotionMaster initialize before LoadFromDB?

Delay MoveConfuse until after adding to world? First two options would give you incorrect behavior

makes sense, queue everything and signal MotionMaster, neat
not too difficult to implement after the rework hehe

@ccrs could you check this issue when you have time ?

Crash reproduced

As the spell has a 9 seconds duration, one has to log back in before the spell expires to trigger the crash

MotionMaster modifications have been delayed till just after AddToWorld

new crashlog: https://github.com/TrinityCore/TrinityCore/files/3756374/unknown_worldserver.exe_.22-10_16-26-15.txt

MoveChase is still added before the default one is added as both are added to delayed actions queue, first MoveChase and then Initialize

unsigned int BaseUnitState = 0x800 --> UNIT_STATE_CONFUSED --> MotionMaster::MoveConfused() 馃槃

but damn.. this is annoying
if we just protect _defaultGenerator->Deactivate(_owner); against incorrect access we will bump into:

  • MoveConfused --> Initialize --> Clear --> MoveConfused is gone

transform delayedActions into priority queue? 馃槰

ignore all Initialize calls done during "initializing" --> always perform one Initialize call before handling the queue --> handle the queue ??? 馃槰

Creatures in formations call MoveIdle() instead of Initialize() which make it harder to know when the initialization has been completed, see https://github.com/TrinityCore/TrinityCore/blob/3.3.5/src/server/game/Entities/Creature/Creature.cpp#L998

but damn.. this is annoying

yes xD

Was this page helpful?
0 / 5 - 0 ratings