TrinityCore / TrinityCore/TrinityCore
Infinite Loop Questid: 28726 SpellId: 92237
Nobody has claimed this yet.
- 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
- First make a nightelf
- Add quest https://www.wowhead.com/quest=28725/the-woodland-protector
- Accept the next quest: https://www.wowhead.com/quest=28726/webwood-corruption Which summons the npc: https://www.wowhead.com/npc=49480/tarindrella
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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