TrinityCore / TrinityCore/TrinityCore

Infinite Loop Questid: 28726 SpellId: 92237

Open
#28,171 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Branch-master
Dominant language
C++
Stars
10.8k
Forks
6.4k
Avg merge
3d 16m
Merged PRs (30d)
6

Description

Description

If you start this quest https://www.wowhead.com/quest=28726/webwood-corruption which casts spell https://www.wowhead.com/spell=92237/summon-tarindrella-aura.
If you try to logout server will get stuck into a infinite loop with trying to remove that aura which then casts the aura again in the method: Aura::HandleAuraSpecificMods in this code block:

        // remove linked auras
        if (std::vector<int32> const* spellTriggered = sSpellMgr->GetSpellLinked(-(int32)GetId()))
        {
            for (std::vector<int32>::const_iterator itr = spellTriggered->begin(); itr != spellTriggered->end(); ++itr)
            {
                if (*itr < 0)
                    target->RemoveAurasDueToSpell(-(*itr));
                else if (removeMode != AURA_REMOVE_BY_DEATH)
                    target->CastSpell(target, *itr, CastSpellExtraArgs(TRIGGERED_FULL_MASK)
                        .SetOriginalCaster(GetCasterGUID())
                        .SetOriginalCastId(GetCastId()));
            }
        }
Expected behaviour

Server should unload all auras from that player and continue, And not infinite loop.

Steps to reproduce the problem
  1. First make a nightelf
  2. Add quest https://www.wowhead.com/quest=28725/the-woodland-protector
  3. Accept the next quest: https://www.wowhead.com/quest=28726/webwood-corruption Which summons the npc: https://www.wowhead.com/npc=49480/tarindrella
  4. Logout and you will see the npc disappear and you will just be stuck trying to logout. nothing works anymore, if force close client and try to log back in, you will be stuck on loggin into server. Server is now in infinite loop trying to remove that aura.
Branch

master

TC rev. hash/commit

TrinityCore rev. 6713fa4c93f8+ 2022-07-29 20:24:28 +0200 (master branch) (Win64, Debug, Static)
Using SSL version: OpenSSL 1.1.1i 8 Dec 2020 (library: OpenSSL 1.1.1i 8 Dec 2020)
Using Boost version: 1.73.0
Using MySQL version: 50734
Using CMake version: 3.22.0-rc2
Compiled on: Windows 10.0.19043
Automatic database updates are enabled for the following databases: World, Hotfixes
Worldserver listening connections on port 8087
Realmlist (Realm Id: 2) configured in port 8087
VMAPs status: Enabled. LineOfSight: 1, getHeight: 1, indoorCheck: 1
MMAPs status: Enabled
maps directory located in E:/Wow Server/ServerData/maps. Total size: 1697904712 bytes
vmaps directory located in E:/Wow Server/ServerData/vmaps. Total size: 3419765254 bytes
mmaps directory located in E:/Wow Server/ServerData/mmaps. Total size: 12839403152 bytes
Using enUS DBC Locale as default. All available DBC locales: enUS
Using World DB: TDB 925.22071
LoginDatabase queue size: 0
CharacterDatabase queue size: 0
WorldDatabase queue size: 0

Operating system

Windows 10

Custom changes

None

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Aura::HandleAuraSpecificMods and reproduce the logout flow using quest 28726 and spell 92237 after following the listed quest steps. Trace the linked-aura removal and recasting behavior during logout. Done means the player's auras are unloaded, the server completes logout, and it does not enter an infinite loop.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.