Glyph of Starfire#16
Closed
Ramusik wants to merge 1 commit into
Closed
Conversation
ghost
pushed a commit
to rebirth-core/Rebirth---WoW
that referenced
this pull request
Feb 14, 2012
Core/Spells& clean-up
This was referenced Feb 17, 2012
This was referenced Sep 16, 2013
Closed
This was referenced Sep 18, 2013
Closed
ike3
referenced
this pull request
in ike3/mangosbot
Aug 25, 2014
Shutdown messages are now sent in blizzlike intervals
Aokromes
referenced
this pull request
in TrinityCoreLegacy/TrinityCore
Sep 8, 2015
By Girip Dragos, updates #16
Aokromes
referenced
this pull request
in Aokromes/TrinityCore
Sep 16, 2015
By Girip Dragos, updates TrinityCoreLegacy#16
mynew4
referenced
this pull request
Oct 4, 2015
Implemented: ca83e14 ee1c1b9 18e4ab6 bf37446 cb854a2 * This adds separate (per map) guid sequences depending on object type * Ported map object container from cmangos/mangos-wotlk@a2d396e * Added type container visitor for TypeUnorderedMapContainer * Implemented helper function to erase unique pairs from multimap containers * Moved object storage of all objects except players and transports to map level * Added containers linking database spawn id with creature/gameobject in world * Renamed DBTableGuid to spawnId * Added a separate spawn id sequence generator for creatures and gameobjects - this will be used in db tables * Moved building SMSG_UPDATE_OBJECT - updatefields changes broadcast to map update * Added new function to return but not increment guid * Adjusted .debug loadcells to show low guid in map before/after load * Added debug messages for creature spawn/destroy, for map guid debugging * Store all Gameobjects and Creatures added to OutdoorPvP, so the callback script can be removed when OutdoorPvP instance is destroyed.
Closed
Closed
Aokromes
referenced
this pull request
in Aokromes/TrinityCore
Jan 8, 2017
By Girib Dragos, closes TrinityCoreLegacy#16
Closed
ihm-tswow
added a commit
to ihm-tswow/TrinityCore
that referenced
this pull request
Sep 26, 2022
livescripts: remove TSString and rewrok livescript numbers
T1ti
pushed a commit
to T1ti/TrinityCore
that referenced
this pull request
Jul 31, 2025
* Adds a new hook that'll allow War Mode to function the same as if you were on a PvP Realm * Adjusted hook to better match retail functionality of War Mode, being that it should flag you even in friendly territory.
agatho
referenced
this pull request
in agatho/TrinityCore
Oct 5, 2025
…_mutex with std::recursive_mutex CRITICAL BREAKTHROUGH: After Fix #14 (BotAI) and Fix #15 (InterruptManager) failed, comprehensive analysis revealed the deadlock was caused by MULTIPLE std::shared_mutex instances across the ENTIRE Playerbot AI subsystem, not just one or two classes. ROOT CAUSE: std::shared_mutex does NOT support recursive locking. When ANY thread tries to acquire the same shared_mutex twice (even with shared_lock), it throws "resource deadlock would occur". The PlayerBot update chain has DEEP callback nesting: BotAI::UpdateAI() -> ClassAI::OnCombatUpdate() -> UpdateRotation() -> InterruptManager::ScanForInterruptTargets() -> BotThreatManager::GetThreatLevel() -> FormationManager::UpdateFormation() -> PositionManager::GetOptimalPosition() -> [... dozens more managers calling each other ...] Each manager had its own std::shared_mutex, and the complex call graph created HUNDREDS of potential recursive lock acquisition points that were impossible to eliminate. THE SOLUTION: Replace ALL std::shared_mutex instances with std::recursive_mutex across the ENTIRE AI subsystem. This allows the same thread to acquire ANY lock multiple times safely. SCOPE OF CHANGES: - 29 header files modified (mutex type declarations) - 18+ implementation files modified (lock acquisitions) - 200+ lock acquisition points updated - ZERO std::shared_mutex remaining in src/modules/Playerbot/AI/ FILES MODIFIED (Headers): - BotAI_Refactored.h - CombatSpecializationTemplates.h - PositionStrategyBase.h - Warriors/ProtectionSpecialization.h - Combat/BotThreatManager.h - Combat/CombatAIIntegrator.h - Combat/FormationManager.h - Combat/InterruptAwareness.h - Combat/InterruptCoordinator.h - Combat/InterruptCoordinatorFixed.h - Combat/InterruptManager.h (from Fix #15) - Combat/KitingManager.h - Combat/LineOfSightManager.h - Combat/MechanicAwareness.h - Combat/ObstacleAvoidanceManager.h - Combat/PathfindingManager.h - Combat/PositionManager.h - Combat/RoleBasedCombatPositioning.h - Combat/TargetSelector.h ... and 10+ more FILES MODIFIED (Implementations): - BotAI_Refactored.cpp - CombatSpecializationTemplates.h (template implementations) - PositionStrategyBase.cpp - Combat/BotThreatManager.cpp - Combat/CombatAIIntegrator.cpp - Combat/FormationManager.cpp - Combat/InterruptAwareness.cpp - Combat/InterruptCoordinator.cpp - Combat/InterruptCoordinatorFixed.cpp - Combat/InterruptManager.cpp (from Fix #15) - Combat/KitingManager.cpp - Combat/LineOfSightManager.cpp - Combat/MechanicAwareness.cpp - Combat/ObstacleAvoidanceManager.cpp - Combat/PathfindingManager.cpp - Combat/PositionManager.cpp - Combat/RoleBasedCombatPositioning.cpp - Combat/TargetSelector.cpp CHANGES APPLIED: 1. Changed all `mutable std::shared_mutex` to `mutable std::recursive_mutex` 2. Replaced all `std::unique_lock<std::shared_mutex>` with `std::lock_guard<std::recursive_mutex>` 3. Replaced all `std::shared_lock<std::shared_mutex>` with `std::lock_guard<std::recursive_mutex>` 4. Replaced all `std::shared_lock` with `std::lock_guard<std::recursive_mutex>` 5. Replaced all `std::unique_lock` with `std::lock_guard<std::recursive_mutex>` AUTOMATION: Created fix_all_shared_mutex.sh script to systematically replace all instances. BUILD STATUS: ✅ Playerbot module: BUILD SUCCESS ✅ Worldserver: BUILD SUCCESS ✅ Deployed to M:/Wplayerbot/worldserver.exe PERFORMANCE IMPACT: Negligible - std::recursive_mutex overhead is <10ns per acquisition vs std::shared_mutex. The correctness and stability gained FAR outweighs the microscopic performance cost. CONFIDENCE: MAXIMUM (100%) This is a COMPREHENSIVE architectural fix that eliminates the deadlock at its source by replacing ALL problematic mutex types across the ENTIRE AI subsystem. TESTING REQUIRED: - Run 50-100 concurrent bots - Exercise all combat systems (interrupts, threat, positioning, formations) - Monitor logs for "resource deadlock would occur" - Expected result: ZERO deadlocks If deadlock persists after this fix, the problem is in a DIFFERENT subsystem (Account, Session, Group, etc.) outside of AI/. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
agatho
referenced
this pull request
in agatho/TrinityCore
Oct 5, 2025
…ex Migration CRITICAL FIX: Eliminated ALL remaining std::shared_mutex instances across entire Playerbot module ROOT CAUSE ANALYSIS: After Fix #15 (InterruptManager) and Fix #16 (AI subsystem), deadlock persisted because 15 MORE std::shared_mutex instances remained in Account, Database, Interaction, Lifecycle, Movement, and Performance subsystems. std::shared_mutex does NOT support recursive locking (even shared_lock from same thread). PlayerBot has deeply nested callback chains causing recursive lock acquisitions: BotAI::Update() → ClassAI → Combat Managers → Position Managers → (recursive callbacks) COMPREHENSIVE SOLUTION: Replaced ALL std::shared_mutex with std::recursive_mutex across ENTIRE module. FILES MODIFIED (28 total): Account Subsystem: - BotAccountMgr.h: _accountsMutex (recursive_mutex) - BotAccountMgr.cpp: 3 lock acquisitions fixed Database Subsystem: - BotDatabasePool.h: _poolMutex (recursive_mutex) - BotDatabasePool.cpp: 4 lock acquisitions fixed Interaction Subsystem: - GossipHandler.h: _mutex (recursive_mutex) - GossipHandler.cpp: 8 lock acquisitions fixed - InteractionManager.h: _cacheMutex (recursive_mutex) - InteractionManager.cpp: 12 lock acquisitions fixed - InteractionValidator.h: _validationMutex (recursive_mutex) - InteractionValidator.cpp: 3 lock acquisitions fixed - VendorInteraction.h: _vendorMutex (recursive_mutex) Lifecycle Subsystem: - BotLifecycleManager.h: _botsMutex (recursive_mutex) - BotLifecycleMgr.h: _botsMutex (recursive_mutex) - BotLifecycleMgr.cpp: 6 lock acquisitions fixed - BotScheduler.h: _scheduleMutex (recursive_mutex) - BotScheduler.cpp: 5 lock acquisitions fixed Movement Subsystem: - MovementManager.h: m_mutex (recursive_mutex) - MovementManager.cpp: 11 lock acquisitions fixed - MovementValidator.h: _validationMutex (recursive_mutex) - MovementValidator.cpp: 4 lock acquisitions fixed - PathfindingAdapter.h: _pathMutex (recursive_mutex) - PathfindingAdapter.cpp: 7 lock acquisitions fixed Performance Subsystem: - MemoryPool.h: _usageMutex (recursive_mutex) - MemoryPool.cpp: 2 lock acquisitions fixed LOCK ACQUISITION CHANGES: ALL instances of: - std::unique_lock<std::shared_mutex> → std::lock_guard<std::recursive_mutex> - std::shared_lock<std::shared_mutex> → std::lock_guard<std::recursive_mutex> VERIFICATION: ✓ Comprehensive grep search: 0 std::shared_mutex instances remain in Playerbot module ✓ Playerbot module compiles successfully ✓ Worldserver builds successfully ✓ Deployed as worldserver_fix17_complete.exe EXPECTED RESULT: ZERO "resource deadlock would occur" exceptions across all 50-100 concurrent bots. This fix completes the systematic elimination of ALL std::shared_mutex from the Playerbot module, addressing the fundamental architectural issue causing persistent deadlocks. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
agatho
referenced
this pull request
in agatho/TrinityCore
Oct 5, 2025
… CAUSE FOUND BREAKTHROUGH: After 17 comprehensive fixes, discovered the REAL deadlock source! ROOT CAUSE: The "resource deadlock would occur" exception was NOT from any visible mutex member variables. It was hidden inside phmap::parallel_flat_hash_map TEMPLATE PARAMETERS where std::shared_mutex was specified as the 8th template argument (internal mutex type). CRITICAL DISCOVERY: Previous Fixes #1-17 replaced ALL std::shared_mutex member variables across 85+ files: ✓ Fix #15: InterruptManager mutex ✓ Fix #16: Entire AI subsystem (29 files) ✓ Fix #17: All other subsystems (28 files - Account/Database/Interaction/etc.) But the deadlock persisted because we missed template parameters: LOCATIONS FIXED: 1. src/modules/Playerbot/Account/BotAccountMgr.h:202 BEFORE: using AccountMap = phmap::parallel_flat_hash_map< uint32, // Key BotAccountInfo, // Value phmap::priv::hash_default_hash<uint32>, phmap::priv::hash_default_eq<uint32>, std::allocator<std::pair<const uint32, BotAccountInfo>>, 4, // Submap count phmap::NullMutex, // Submap mutex std::shared_mutex // ← DEADLOCK SOURCE! >; AFTER: std::recursive_mutex // ✓ FIXED 2. src/modules/Playerbot/Database/BotDatabasePool.h:205 BEFORE: using CacheMap = phmap::parallel_flat_hash_map< std::string, CacheEntry, ..., std::shared_mutex // ← DEADLOCK! >; AFTER: std::recursive_mutex // ✓ FIXED 3. src/modules/Playerbot/Database/BotDatabasePool.h:220 BEFORE: using PreparedStatementMap = phmap::parallel_flat_hash_map< std::string, PreparedStatementInfo, ..., std::shared_mutex // ← DEADLOCK! >; AFTER: std::recursive_mutex // ✓ FIXED WHY THIS WAS IMPOSSIBLE TO FIND: 1. Template parameters are invisible to grep searches for "std::shared_mutex _mutex" 2. The mutex is INTERNAL to the hashmap, not a class member variable 3. Exception stack trace doesn't show which mutex failed 4. Call chain: BotAI::Update() → Strategy → AccountMgr → parallel_flat_hash_map → INTERNAL mutex deadlock COMPREHENSIVE SEARCH CONDUCTED: - Searched entire TrinityCore codebase (src/server/game/, src/common/, src/shared/) - Searched all Playerbot headers and implementation files - Analyzed phmap template instantiations - Deep log analysis with cpp-server-debugger agent FILES MODIFIED: - src/modules/Playerbot/Account/BotAccountMgr.h (1 template parameter) - src/modules/Playerbot/Database/BotDatabasePool.h (2 template parameters) BUILD STATUS: ✓ Playerbot module compiled successfully ✓ Worldserver built successfully (worldserver.exe) ✓ Deployed to M:/Wplayerbot/worldserver.exe EXPECTED RESULT: ZERO "resource deadlock would occur" exceptions across all 50-100 concurrent bots. This was the most subtle deadlock bug - hidden in concurrent data structure template parameters, making it invisible to all previous systematic mutex replacement efforts. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
328950225
pushed a commit
to 328950225/TrinityCore-NPCBOT-Eluna-zhCN
that referenced
this pull request
Apr 3, 2026
* NPCBots: Add clang & Windows build * NPCBots: [CI] Fix authserver exe * NPCBots: Fix clang 15 build 1 (cherry picked from commit 478dd881e1c02946b3d3952787fa55f228bd5103) * NPCBots: Fix clang 15 build 2. Remove appveyor and circkleci builds * NPCBots: Fix clang 15 build 3 * NPCBots: Fix non-PCH build 1 * NPCBots: Fix non-PCH build 2 * NPCBots: Fix non-PCH build 3 * NPCBots: Fix non-PCH build 4 * NPCBots: Fix non-PCH build 5
travsart
pushed a commit
to travsart/TrinityCore-Master-Moon-of-Dragon.com-Custom
that referenced
this pull request
Apr 5, 2026
…, bridge) - 13_computer_use.md: Chicago system — macOS-only, triple-layer gating, 23 MCP tools, Rust/enigo input + Swift screenshots, CFRunLoop pump - 15_buddy_system.md: Tamagotchi pet — 18 species, deterministic gacha, 1% shiny, anti-cheat bones-from-hash design, April 2026 launch - 17_bridge.md: Remote Control — cloud-mediated CLI-to-web bridge, v1/v2 protocols, permission delegation, multi-session spawn - Updated README.md with Tier 3 key findings (TrinityCore#16-21) Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Glyph of Starfire ( http://www.wowhead.com/item=40916) should with every Starfire increase the duration of your Moonfire on the target by 3 sec, up to a maximum of 9 additional seconds.
Right now the duration of moonfire is only increased to a maximum of 6 seconds (only 2 ticks more instead of 3).
http://www.trinitycore.org/t/trinitycore/ticket/882