Trinitycore: [Crash] ScheduleAIChange ASSERTION FAILED

Created on 13 Dec 2018  路  11Comments  路  Source: TrinityCore/TrinityCore

Description:
in ScheduleAIChange ASSERTION FAILED: !i_disabledAI
Attempt to schedule charm AI change on unit that already has disabled AI

Crash log
https://gist.github.com/HAANAAE/e9c87635f132f3b34bc2fb674a9e94e1

Branch(es): 3.3.5
TC rev. hash/commit: https://github.com/TrinityCore/TrinityCore/commit/606fbc248223953891084430da9f371e25506825
Operating system: debian

Branch-3.3.5a HasBacktrace Sub-AI

Most helpful comment

Could it be that mind controlled player is a mage and charm AI makes it cast Ice Block? (or same with paladin Divine Shield)

All 11 comments

#13 0x00000000010fed81 in WorldObject::CastSpell (this=0x7fff3e963000, target=0x7fff48c25240, spellId=37122, args=...) at /home/TrinityCore/src/server/game/Entities/Object/Object.cpp:2825
        targets = {m_targetMask = 2, m_objectTarget = 0x7fff48c25240, m_itemTarget = 0x0, m_origObjectTargetGUID = {static Empty = {static Empty = <same as static member of an already seen type>, _guid = 0}, _guid = 0}, m_objectTargetGUID = {static Empty = {static Empty = <same as static member of an already seen type>, _guid = 0}, _guid = 6240}, m_itemTargetGUID = {static Empty = {static Empty = <same as static member of an already seen type>, _guid = 0}, _guid = 0}, m_itemTargetEntry = 0, m_src = {_position = {<Position> = {m_positionX = 0, m_positionY = 0, m_positionZ = 0, m_orientation = 0}, m_mapId = 4294967295}, _transportGUID = {static Empty = {static Empty = <same as static member of an already seen type>, _guid = 0}, _guid = 0}, _transportOffset = {m_positionX = 0, m_positionY = 0, m_positionZ = 0, m_orientation = 0}}, m_dst = {_position = {<Position> = {m_positionX = 0, m_positionY = 0, m_positionZ = 0, m_orientation = 0}, m_mapId = 4294967295}, _transportGUID = {static Empty = {static Empty = <same as static member of an already seen type>, _guid = 0}, _guid = 0}, _transportOffset = {m_positionX = 0, m_positionY = 0, m_positionZ = 0, m_orientation = 0}}, m_elevation = 0, m_speed = 0, m_strTarget = <incomplete type>}
#14 0x0000000000f58156 in SmartScript::ProcessAction (this=0x7fff48a24228, e=..., unit=0x0, var0=0, var1=0, bvar=false, spell=0x0, gob=0x0) at /home/TrinityCore/src/server/game/AI/SmartScripts/SmartScript.cpp:577
        triggerFlag = TriggerCastFlags::TRIGGERED_NONE
        target = <optimized out>
        __range = <optimized out>
        __begin = <optimized out>
        __end = <optimized out>
        targets = std::vector of length 1, capacity 1 = {0x7fff48c25240}

https://www.wowhead.com/spell=37122/domination

New Crash Log

Entities/Unit/Unit.cpp:9429 in ScheduleAIChange ASSERTION FAILED:
!m_aiLocked
Attempt to schedule AI change during AI update tick

https://gist.github.com/HAANAAE/e28e110b62e89e4b15a7cb07b2c03539

you could apply https://github.com/TrinityCore/TrinityCore/pull/22783 and maybe get some more info about the assert (I should merge it in a few weeks)

Both asserts were triggered in an Instance, the first one in The Eye.
The 2nd assert is about a charmed player casting a spell that removes the charmed aura from himself (no clue how that is possible).

@Treeston could you take a look at this when you have time ?

I wonder if the 1st assert is triggered by charming spell being cast to an already-charmed unit

Could it be that mind controlled player is a mage and charm AI makes it cast Ice Block? (or same with paladin Divine Shield)

Possible Shauren.
Ice Block and Divine Shield are in SpellList of PlayerAI

c744566

Is it intended though for AI to change itself ? Should that issue be taken care of too?

AI does not directly change itself. Spell casts' immediate effects are processed immediately downstack from CastSpell (in AI update), and if doing so causes charm AI to be removed the assert was thrown.

I mean, is it intended for a charmed Player to cast Ice Block and break the charm ? Should Ice Block be removed from the list of available spells or should it somehow not drop the charm ?

Anecdotally, yeah, charm AI can un-charm itself on retail.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cbcs picture cbcs  路  3Comments

chilito picture chilito  路  3Comments

tje3d picture tje3d  路  3Comments

DDuarte picture DDuarte  路  3Comments

besplash picture besplash  路  3Comments