Jump to content
  • Server crash - pet NPC aura


    madmax
    • Status: Confirmed
      Main Category: Core / Mangos Daemon
      Sub-Category: Core Crash
      Version: 21.0 Milestone: 21 Priority: Urgent
      Implemented Version: 0.20

    Server crash - pet NPC aura

    Just confirming that applying certain aura's to pet's crashes all cores.

    This has been tested on zero/one/two servers.

    Tested "Imp Minion" at cords: 4952.994141 -413.053192 327.463501

    This can be reproduced by clicking the imp and applying the following command: .aura 25309

    This may need to be done several times but the result is the server crashes.



    From team developer chat:

    [QUOTE]when looking through the crash it seems that
    the cause originates around from > mangosd.exe!Map::Update(const unsigned int & t_diff) Line 523 C++


    The reason is that first creatures are updated, then pets and then player's surroundings.
    However, in pet update the pet is unsummoned or something when he dies.
    But he still exists in the grid.
    And when reaching the player surrounding update, it will crash since it triest to update the auras that were deleted on pet update
    [/QUOTE]


    User Feedback

    Recommended Comments

    Crash occurs when any pet (hunter, warlock, player pet or npc pet) is killed by an aura.
    .go xyz 4919.25049 -393.118439 333.848633 1
    .aura 25309

    The crash is caused by
    [QUOTE]Yes, seems its the unsummoning for pets on setdeathstate.
    It calls CleanupsBeforeDelete, which removes all auras and timed events from the pet.
    The deathstate is set when the creature dies.
    The creature dies when the aura kills the creature, so when the aura is updated / ticks)
    However, the ticks are made as one loop. All auras are looped through and they are processed.
    But since the auras are deleted when the killing aura is processed, it will make the loop have null error.[/QUOTE]

    Suggested fix stub based on what crashes. Disabling the unsummon on death state change and moving the final unsummon to the update loop for next time called:
    diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp
    index 001f3cb..f140618 100644
    --- a/src/game/Pet.cpp
    +++ b/src/game/Pet.cpp
    @@ -520,7 +520,7 @@ void Pet::SetDeathState(DeathState s) // overwrite virtual
    {
    // remove summoned pet (no corpse)
    if (getPetType() == SUMMON_PET)
    - { Unsummon(PET_SAVE_NOT_IN_SLOT); }
    + ;// { Unsummon(PET_SAVE_NOT_IN_SLOT); }
    // other will despawn at corpse desppawning (Pet::Update code)
    else
    {
    @@ -552,13 +552,8 @@ void Pet::Update(uint32 update_diff, uint32 diff)
    {
    case CORPSE:
    {
    - if (m_corpseRemoveTime - {
    - MANGOS_ASSERT(getPetType() != SUMMON_PET); // Pet must be already removed
    - Unsummon(PET_SAVE_NOT_IN_SLOT); // hunters' pets never get removed because of death, NEVER!
    - return;
    - }
    - break;
    + Unsummon(PET_SAVE_NOT_IN_SLOT);
    + return;
    }
    case ALIVE:
    {


    Note. Do not directly add this fix to repo / master as it has for example empty if.
    Unsure of using break or return in the case.
    The fix has not been tested for other effects than fixing this issue.

    [QUOTE]I am not that familiar with the system and not sure if it has effects .. it most likely affects hunter pets dying
    you should be able to rezz them but this will likely make them disappear instantly
    something to do with m_corpseRemoveTime probably[/QUOTE]

    Link to comment
    Share on other sites

    That fix works :-)
    But we now need to put a check in the above mentioned loop that checks to see if the creature the aura is working on is still alive/exists - in a state to allow for the application of the aura.

    [B]EDIT:[/B] Forget the above. My system works fine even with the original code!!! No crashes occur, therefore I am unable to prove what works and what does not :(

    Link to comment
    Share on other sites

    Sorry to break the news, but I killed a voidwalker minion and the server instantly died. I had five ranks of deadly poison 2 on him, and that MAT have ticked before I hit him.
    [code]
    WORLD: Sending SMSG_ATTACKERSTATEUPDATE
    AttackerStateUpdate: (Player) 3 attacked 66 (TypeId: 3) for 0 dmg, absorbed 0, blocked 0, resisted 0.
    WORLD: Received opcode CMSG_SETSHEATHED for Player Marrek (Guid: 3) - value: 1
    PeriodicTick: Player Marrek (Guid: 3) attacked Pet (Petnumber: 537 Guid: 66) for 26 dmg inflicted by 2819
    DealDamageStart
    deal dmg:26 to health:26
    DealDamage Player Marrek (Guid: 3) Killed Pet (Petnumber: 537 Guid: 66)
    PLAYER: RewardHonor
    DealDamageAttackStop
    creature 66 stopped attacking player 3
    player 3 stopped attacking creature 66
    SET JUST_DIED
    Aura 3 now is remove mode 4
    Aura 79 now is remove mode 5
    Aura 133 now is remove mode 5
    Aura 132 now is remove mode 5
    DealDamageEnd returned 26 damage

    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0xb20f1b70 (LWP 3220)]
    0x0eac300a in ?? ()
    (gdb) backtrace
    #0 0x0eac300a in ?? ()
    #1 0x0882df54 in SpellAuraHolder::Update (this=0xd955130, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.cpp:5445
    #2 0x086a0f95 in SpellAuraHolder::UpdateHolder (this=0xd955130, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:154
    #3 0x0868ba49 in Unit::_UpdateSpells (this=0xd8c8eb0, time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:2979
    #4 0x086828fa in Unit::Update (this=0xd8c8eb0, update_diff=100, p_time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:329
    #5 0x0871ba96 in Creature::Update (this=0xd8c8eb0, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Creature.cpp:582
    #6 0x086b6e0e in Pet::Update (this=0xd8c8eb0, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Pet.cpp:600
    #7 0x087dadee in WorldObject::UpdateHelper::Update (this=0xb20effc4,
    time_diff=100) at /home/---/zero/src/server/src/game/Object/Object.h:473
    #8 0x087db558 in MaNGOS::ObjectUpdater::Visit (this=0xb20f11a0, m=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/GridNotifiersImpl.h:54
    #9 0x087e85f6 in VisitorHelper<:objectupdater creature> (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:72
    #10 0x087e826e in VisitorHelper<:objectupdater creature typelist typenull> > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:85
    #11 0x087e7c2c in VisitorHelper<:objectupdater player typelist typenull> > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:86
    #12 0x087e6edd in VisitorHelper<:objectupdater typelist typenull> > > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:98
    #13 0x087e5cb0 in TypeContainerVisitor<:objectupdater typemapcontainer typelist typenull> > > > > >::Visit (this=0xb20f1198, c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:127
    #14 0x087e3f17 in Grid > > >, TypeList > > > >::Visit<:objectupdater> (this=0xda4e394, visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/Grid.h:111
    #15 0x087e1722 in NGrid > > >, TypeList > > > >::Visit<:objectupdater typelist typenull> > > > > (this=0xda4db88, x=@0xb20f00dc: 0, y=@0xb20f00d8: 9,
    visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/NGrid.h:360
    #16 0x087dd6ae in Map::Visit<:objectupdater typemapcontainer typelist typenull> > > > > >
    (this=0xbb1e288, cell=..., visitor=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.h:449
    #17 0x087d49e0 in Map::Update (this=0xbb1e288, t_diff=@0xb20f123c: 100)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.cpp:521
    #18 0x088e3cd6 in MapManager::Update (this=0xb408e10, diff=48)
    at /home/---/zero/src/server/src/game/WorldHandlers/MapManager.cpp:184
    #19 0x087f15fb in World::Update (this=0x8e51290, diff=48)
    at /home/---/zero/src/server/src/game/WorldHandlers/World.cpp:1498
    #20 0x085b7fcf in WorldRunnable::run (this=0xbb5dcc8)
    at /home/---/zero/src/server/src/mangosd/WorldRunnable.cpp:66
    #21 0x0898db5d in ACE_Based::Thread::ThreadTask (param=0xbb5dcc8)
    at /home/---/zero/src/server/src/shared/Threading.cpp:197
    #22 0xb7f43171 in ACE_OS_Thread_Adapter::invoke() ()
    from /usr/lib/libACE-6.0.3.so
    #23 0xb7f051cf in ace_thread_adapter () from /usr/lib/libACE-6.0.3.so
    #24 0xb77ccc39 in start_thread ()
    from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
    #25 0xb77399fe in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
    [/code]
    This is a build from last Friday, if I am not mistaken. R20, of course.

    Link to comment
    Share on other sites

    Build from yesterday, happened a few minutes ago.
    [code]
    DealDamageStart
    deal dmg:41 to health:41
    DealDamage Player Ryuk (Guid: 6) Killed Pet (Petnumber: 635 Guid: 90)
    PLAYER: RewardHonor
    DealDamageAttackStop
    creature 90 stopped attacking player 6
    creature 87 stopped attacking creature 90
    SET JUST_DIED
    Aura 53 now is remove mode 4
    Aura 99 now is remove mode 4
    Aura 79 now is remove mode 5
    Aura 133 now is remove mode 5
    Aura 132 now is remove mode 5
    DealDamageEnd returned 41 damage

    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0xb20f1b70 (LWP 10434)]
    0x0d000213 in ?? ()
    (gdb)
    #0 0x0d000213 in ?? ()
    #1 0x0882df54 in SpellAuraHolder::Update (this=0xd75c008, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.cpp:5445
    #2 0x086a0f95 in SpellAuraHolder::UpdateHolder (this=0xd75c008, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:154
    #3 0x0868ba49 in Unit::_UpdateSpells (this=0xd661f40, time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:2979
    #4 0x086828fa in Unit::Update (this=0xd661f40, update_diff=100, p_time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:329
    #5 0x0871ba96 in Creature::Update (this=0xd661f40, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Creature.cpp:582
    #6 0x086b6e0e in Pet::Update (this=0xd661f40, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Pet.cpp:600
    #7 0x087dadee in WorldObject::UpdateHelper::Update (this=0xb20effc4,
    time_diff=100) at /home/---/zero/src/server/src/game/Object/Object.h:473
    #8 0x087db558 in MaNGOS::ObjectUpdater::Visit (this=0xb20f11a0, m=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/GridNotifiersImpl.h:54
    #9 0x087e85f6 in VisitorHelper<:objectupdater creature> (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:72
    #10 0x087e826e in VisitorHelper<:objectupdater creature typelist typenull> > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:85
    #11 0x087e7c2c in VisitorHelper<:objectupdater player typelist typenull> > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:86
    #12 0x087e6edd in VisitorHelper<:objectupdater typelist typenull> > > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:98
    #13 0x087e5cb0 in TypeContainerVisitor<:objectupdater typemapcontainer typelist typenull> > > > > >::Visit (this=0xb20f1198, c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:127
    #14 0x087e3f17 in Grid > > >, TypeList > > > >::Visit<:objectupdater> (this=0xbb7a21c, visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/Grid.h:111
    #15 0x087e1722 in NGrid > > >, TypeList > > > >::Visit<:objectupdater typelist typenull> > > > > (this=0xbb72850, x=@0xb20f00dc: 8, y=@0xb20f00d8: 11,
    visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/NGrid.h:360
    #16 0x087dd6ae in Map::Visit<:objectupdater typemapcontainer typelist typenull> > > > > >
    (this=0xbb02c38, cell=..., visitor=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.h:449
    #17 0x087d49e0 in Map::Update (this=0xbb02c38, t_diff=@0xb20f123c: 100)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.cpp:521
    #18 0x088e3cd6 in MapManager::Update (this=0xb40e8d8, diff=46)
    at /home/---/zero/src/server/src/game/WorldHandlers/MapManager.cpp:184
    #19 0x087f15fb in World::Update (this=0x8e51290, diff=46)
    at /home/---/zero/src/server/src/game/WorldHandlers/World.cpp:1498
    #20 0x085b7fcf in WorldRunnable::run (this=0xbb5ebc0)
    at /home/---/zero/src/server/src/mangosd/WorldRunnable.cpp:66
    #21 0x0898db5d in ACE_Based::Thread::ThreadTask (param=0xbb5ebc0)
    at /home/---/zero/src/server/src/shared/Threading.cpp:197
    #22 0xb7f43171 in ACE_OS_Thread_Adapter::invoke() ()
    from /usr/lib/libACE-6.0.3.so
    #23 0xb7f051cf in ace_thread_adapter () from /usr/lib/libACE-6.0.3.so
    #24 0xb77ccc39 in start_thread ()
    from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
    #25 0xb77399fe in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
    [/code]

    Link to comment
    Share on other sites

    I logged in to escort one of mom's new characters through RFC and then test the despawn issue in Felwood. We got to the first group with voidwalkers and it crashed as soon as I used rain of fire on it.
    [code]
    Sending SMSG_SPELL_START id=7811
    Sending SMSG_SPELL_GO id=7811
    Spell 7811 added an additional 395.000000 threat for harming 1 target(s)
    Spell 7811 Effect0 : 63 Targets: Creature (Entry: 11322 Guid: 48692), -, -
    PeriodicTick: Player Ryuk (Guid: 6) attacked Pet (Petnumber: 562 Guid: 2) for 177 dmg inflicted by 11677
    DealDamageStart
    deal dmg:177 to health:91
    DealDamage Player Ryuk (Guid: 6) Killed Pet (Petnumber: 562 Guid: 2)
    PLAYER: RewardHonor
    DealDamageAttackStop
    creature 2 stopped attacking creature 1
    SET JUST_DIED
    Aura 3 now is remove mode 4
    Aura 79 now is remove mode 5
    Aura 133 now is remove mode 5
    Aura 132 now is remove mode 5
    DealDamageEnd returned 177 damage

    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0xb20f1b70 (LWP 18068)]
    0x00040400 in ?? ()
    (gdb) backtrace
    #0 0x00040400 in ?? ()
    #1 0x0882ebc2 in Aura::UpdateAura (this=0xb77c43f0, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:455
    #2 0x0882df54 in SpellAuraHolder::Update (this=0xa370b60, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.cpp:5445
    #3 0x086a0f95 in SpellAuraHolder::UpdateHolder (this=0xa370b60, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:154
    #4 0x0868ba49 in Unit::_UpdateSpells (this=0xea396c8, time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:2979
    #5 0x086828fa in Unit::Update (this=0xea396c8, update_diff=100, p_time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:329
    #6 0x0871ba96 in Creature::Update (this=0xea396c8, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Creature.cpp:582
    #7 0x086b6e0e in Pet::Update (this=0xea396c8, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Pet.cpp:600
    #8 0x087dadee in WorldObject::UpdateHelper::Update (this=0xb20effa4,
    time_diff=100) at /home/---/zero/src/server/src/game/Object/Object.h:473
    #9 0x087db558 in MaNGOS::ObjectUpdater::Visit (this=0xb20f1180, m=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/GridNotifiersImpl.h:54
    #10 0x087e85f6 in VisitorHelper<:objectupdater creature> (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:72
    #11 0x087e826e in VisitorHelper<:objectupdater creature typelist typenull> > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:85
    #12 0x087e7c2c in VisitorHelper<:objectupdater player typelist typenull> > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:86
    #13 0x087e6edd in VisitorHelper<:objectupdater typelist typenull> > > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:98
    #14 0x087e5cb0 in TypeContainerVisitor<:objectupdater typemapcontainer typelist typenull> > > > > >::Visit (this=0xb20f1178, c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:127
    #15 0x087e3f17 in Grid > > >, TypeList > > > >::Visit<:objectupdater> (this=0xc2f92dc, visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/Grid.h:111
    #16 0x087e1722 in NGrid > > >, TypeList > > > >::Visit<:objectupdater typelist typenull> > > > > (this=0xc2f2010, x=@0xb20f00bc: 8, y=@0xb20f00b8: 3,
    visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/NGrid.h:360
    #17 0x087dd6ae in Map::Visit<:objectupdater typemapcontainer typelist typenull> > > > > >
    (this=0xcf12778, cell=..., visitor=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.h:449
    #18 0x087d49e0 in Map::Update (this=0xcf12778, t_diff=@0xb20f123c: 100)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.cpp:521
    #19 0x087d8828 in DungeonMap::Update (this=0xcf12778, t_diff=@0xb20f123c: 100)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.cpp:1410
    #20 0x088e3cd6 in MapManager::Update (this=0xb40e878, diff=45)
    at /home/---/zero/src/server/src/game/WorldHandlers/MapManager.cpp:184
    #21 0x087f15fb in World::Update (this=0x8e51290, diff=45)
    at /home/---/zero/src/server/src/game/WorldHandlers/World.cpp:1498
    #22 0x085b7fcf in WorldRunnable::run (this=0xbb5d9f8)
    at /home/---/zero/src/server/src/mangosd/WorldRunnable.cpp:66
    #23 0x0898db5d in ACE_Based::Thread::ThreadTask (param=0xbb5d9f8)
    at /home/---/zero/src/server/src/shared/Threading.cpp:197
    #24 0xb7f43171 in ACE_OS_Thread_Adapter::invoke() ()
    from /usr/lib/libACE-6.0.3.so
    #25 0xb7f051cf in ace_thread_adapter () from /usr/lib/libACE-6.0.3.so
    #26 0xb77ccc39 in start_thread ()
    from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
    #27 0xb77399fe in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
    [/code]

    Link to comment
    Share on other sites

    The fix I provided was never tested by anyone else successfully. And it was never actually added to master.
    Would you be able to test it, Xenithar?

    Then we at least know the change fixes it and there are no other known issues with it.
    The final solution will need some changes though.

    Link to comment
    Share on other sites

    I had to modify your patch a bit, but it works. Want me to do a PR?

    *UPDATE*

    Guess everybody is in bed. I am going to do the PR and hit the sack myself. The PR has been made. The commit can be found [url=https://github.com/The-Great-Sephiroth/server/commit/68f55260252de203387c13a9ba8ab1bf0d3765a2]here[/url].

    Link to comment
    Share on other sites

    This is rearing its head again.
    [code]
    Holder of spell 19591 now is in use
    Spell 20782 Effect0 : 6 Targets: Pet (Petnumber: 574 Guid: 16), -, -
    Spell: Aura is: 157
    Aura: construct Spellid : 20782, Aura : 157 Target : 1 Damage : -46
    Holder of spell 20782 now is in use
    Spell 20784 Effect0 : 6 Targets: Pet (Petnumber: 574 Guid: 16), -, -
    Spell: Aura is: 42
    Aura: construct Spellid : 20784, Aura : 42 Target : 1 Damage : 0
    Holder of spell 20784 now is in use
    Spell 24529 Effect0 : 119 Targets: Pet (Petnumber: 574 Guid: 16), -, -
    Aura: construct Spellid : 24529, Aura : 20 Target : 1 Damage : 2
    Holder of spell 24529 now is in use
    creature 134445 stopped attacking player 14
    Aura 23 now is remove mode 4
    Pet (Petnumber: 574 Guid: 16) enters grid[18,26]
    Pet Spells Groups

    Program received signal SIGSEGV, Segmentation fault.
    [Switching to Thread 0xb20f1b70 (LWP 5251)]
    0x08843241 in Aura::UpdateAura (this=0xd841018, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:455
    455 void UpdateAura(uint32 diff) { SetInUse(true); Update(diff); SetInUse(false); }
    (gdb) backtrace
    #0 0x08843241 in Aura::UpdateAura (this=0xd841018, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:455
    #1 0x088425e4 in SpellAuraHolder::Update (this=0xe8e1e20, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.cpp:5448
    #2 0x086b4199 in SpellAuraHolder::UpdateHolder (this=0xe8e1e20, diff=100)
    at /home/---/zero/src/server/src/game/WorldHandlers/SpellAuras.h:154
    #3 0x0869ed17 in Unit::_UpdateSpells (this=0xd0ed5a0, time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:2928
    #4 0x08695e62 in Unit::Update (this=0xd0ed5a0, update_diff=100, p_time=100)
    at /home/---/zero/src/server/src/game/Object/Unit.cpp:325
    #5 0x0872eb94 in Creature::Update (this=0xd0ed5a0, update_diff=100, diff=100)
    at /home/---/zero/src/server/src/game/Object/Creature.cpp:583
    #6 0x087ee0e0 in WorldObject::UpdateHelper::Update (this=0xb20effc4,
    time_diff=100) at /home/---/zero/src/server/src/game/Object/Object.h:473
    #7 0x087ee83a in MaNGOS::ObjectUpdater::Visit (this=0xb20f11a0, m=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/GridNotifiersImpl.h:54
    #8 0x087fb950 in VisitorHelper<:objectupdater creature> (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:72
    #9 0x087fb57f in VisitorHelper<:objectupdater creature typelist typenull> > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:85
    #10 0x087faf57 in VisitorHelper<:objectupdater gameobject typelist typenull> > > > (v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:86
    #11 0x087fa215 in VisitorHelper<:objectupdater typelist typenull> > > > > (
    v=..., c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:98
    #12 0x087f8fee in TypeContainerVisitor<:objectupdater typemapcontainer typelist typenull> > > > > >::Visit (this=0xb20f119c, c=...)
    at /home/---/zero/src/server/src/framework/GameSystem/TypeContainerVisitor.h:127
    #13 0x087f722c in Grid > > >, TypeList > > > >::Visit<:objectupdater> (this=0xe6cfb7c, visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/Grid.h:99
    #14 0x087f4a16 in NGrid > > >, TypeList > > > >::Visit<:objectupdater typelist typenull> > > > > (this=0xe6c40f0, x=@0xb20f00dc: 13,
    y=@0xb20f00d8: 5, visitor=...)
    at /home/---/zero/src/server/src/framework/GameSystem/NGrid.h:360
    #15 0x087f0896 in Map::Visit<:objectupdater typemapcontainer typelist typenull> > > > > > (this=0xbb66020, cell=..., visitor=...)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.h:449
    #16 0x087e7cde in Map::Update (this=0xbb66020, t_diff=@0xb20f123c: 100)
    at /home/---/zero/src/server/src/game/WorldHandlers/Map.cpp:522
    #17 0x088f7f1e in MapManager::Update (this=0xb44cd48, diff=47)
    at /home/---/zero/src/server/src/game/WorldHandlers/MapManager.cpp:184
    #18 0x08804b31 in World::Update (this=0x8e87290, diff=47)
    at /home/---/zero/src/server/src/game/WorldHandlers/World.cpp:1523
    #19 0x085cb3c7 in WorldRunnable::run (this=0xbbe9b88)
    at /home/---/zero/src/server/src/mangosd/WorldRunnable.cpp:66
    #20 0x089a2059 in ACE_Based::Thread::ThreadTask (param=0xbbe9b88)
    at /home/---/zero/src/server/src/shared/Threading.cpp:197
    #21 0xb7f43171 in ACE_OS_Thread_Adapter::invoke() ()
    from /usr/lib/libACE-6.0.3.so
    #22 0xb7f051cf in ace_thread_adapter () from /usr/lib/libACE-6.0.3.so
    #23 0xb77ccc39 in start_thread ()
    from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
    #24 0xb77399fe in clone () from /lib/i386-linux-gnu/i686/cmov/libc.so.6
    [/code]
    My fiance was taming Barnabus in Badlands. When it finished taming, the core crashed.

    Link to comment
    Share on other sites

    She did it again. Went to Barnabus, started taming. Taming finishes and the small version (her pet) spawns but the big one does not despawn and the server crashes. Only appears to happen to Barnabus though. I tamed an elder shardtooth in Winterspring seconds before with no issues and did a ".save". I now have the bear. Barnabus has something going on causing the crash. I also tamed quite a few pets yesterday to learn higher-rank skills without issue.

    Link to comment
    Share on other sites

    Well I tamed Broken Tooth and so did she. I also have Lupos. I normally only tame rare/elite/unique pets. I actually tamed Barnabus a month or so back and later released him. This must be tied to an update somewhere.

    Link to comment
    Share on other sites

    I highly doubt it is related to any recent updates, I'm leaning more towards the pet system as a whole being unstable.. I had the exact same crash with the said pet in Loch Modan. It happened twice, then when I tried a third time it didn't crash anymore. For the hell of it, would you mind disabling the pets scripts (if not in SD2, remove the AI name/spell ID's) from the pet in the database and try again?

    Link to comment
    Share on other sites

    Which would be more effective at testing your theory? Also, I have tamed several rare/elite pets since with no problems. Taming Barnabus crashes it though. For instance, I tamed Rak'shiri without a hitch.

    Link to comment
    Share on other sites

    Where is this pet found?

    Edit:

    Found it. This is really odd. I spawned a copy of the creature, taming went perfectly fine. Seems Barnabus and several other creatures are spawned on server reload instead of being a static entry in the database? Could possibly have something to do with it, as I see no specific scripts attached to him.

    Edit 2:

    Removed [COLOR=#000000]5961 from the PetSpellDataId column in Creature_template and taming worked perfectly fine. What is this table specifically used for?

    Edit 3:

    Alright so, the PetSpellDataId points to CreatureSpellData.dbc, which contains the specific spells the creature should have upon taming. [/COLOR][COLOR=#000000]5961 points to "Bite" - [/COLOR]17259. Why this crashes I still do not know. Will need further testing.

    Link to comment
    Share on other sites

    It is funny you figured that out. My fiance was taming him for the higher rank of bite. However, I tamed some Winterspring animals to get bite R7 and R8, no issues. In fact I have almost all pet spells now learned, minus the ones for birds.

    Link to comment
    Share on other sites

    After testing even more, I'm not able to reproduce the crash with any other tameable mob, even when I use the same spell data id.. This only seems to happen with special case mobs like Barnabus and other rare mobs. What's even more weird is after I removed the spell and tamed him, he would be longer respawn, even though the record is still in the creature table.

    Will need some assistance looking into this as I'm at my wits end.. Have checked everything up and down several times, and can't for the life of me figure this one out.

    Link to comment
    Share on other sites



    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use