File Details
DKPAuctioneer_V1.4.8
- R
- Mar 17, 2026
- 48.99 KB
- 35
- 12.0.1
- Retail
File Name
DKPAuctioneer_V1.4.8.zip
Supported Versions
- 12.0.1
# DKP Auctioneer - Changelog Version 1.4.8
**Release Datum:** 17. März 2026
---
## KRITISCHER BUGFIX
### Race Condition Fix in EndAuction()
**Problem:** Bei gleichzeitigen Geboten mehrerer Spieler konnte `EndAuction()` mehrfach parallel ausgeführt werden, was zu doppelten DKP-Abzügen und inkonsistenten Zuständen führte.
**Lösung:** Implementierung eines MUTEX-Pattern mit `auctionEnding` Flag:
#### Änderungen in `DKPAuctioneer_Auction.lua`:
1. **Neues Flag hinzugefügt:**
```lua
self.auctionEnding = false -- MUTEX: Verhindert doppelte EndAuction() Aufrufe
```
2. **MUTEX CHECK am Anfang von EndAuction():**
```lua
if self.auctionEnding then
DKP:Debug("EndAuction: Bereits in Ausführung (MUTEX), überspringe")
return false
end
```
3. **MUTEX LOCK wird gesetzt:**
```lua
self.auctionEnding = true
```
4. **MUTEX UNLOCK an kritischen Stellen:**
- Bei "Keine Gebote" Szenario
- Nach erfolgreicher Winner-Verarbeitung in `ProcessWinner()`
- Bei Fehler in `ResolveRollWinner()`
#### Geschützte Szenarien:
- ✅ Alle Spieler bieten gleichzeitig → EndAuction() wird nur 1x ausgeführt
- ✅ Tie-Breaker mit parallelen Rolls → Keine doppelte Verarbeitung
- ✅ Fehlerfall → MUTEX wird trotzdem freigegeben
- ✅ Netzwerk-Lag mit verzögerten Geboten → Schutz durch Flag
#### Technische Details:
Das MUTEX-Flag verhindert dass `EndAuction()` während einer laufenden Ausführung erneut aufgerufen werden kann. Dies ist besonders wichtig bei:
- Gleichzeitigen Geboten aller Spieler (CheckAllPlayersBid triggers)
- Tie-Breaker Roll-Phase (Flag bleibt aktiv)
- Fehlerszenarien (Flag wird trotzdem zurückgesetzt)
**Risiko vorher:** Hoch - Datenverlust, doppelte DKP-Abzüge
**Risiko nachher:** Minimal - Vollständiger Schutz implementiert
---
## Kompatibilität
- **WoW Version:** 12.0.0.1 (The War Within)
- **Abhängigkeiten:** Keine
- **Rückwärtskompatibel:** Ja (mit Version 1.4.7)
---
## Installation
Ersetze die alte Version durch die neuen Dateien oder nutze den Addon-Manager.
---
**Vorherige Version:** [1.4.7](Changelog1.4.7.md)