Release v1.5.2 - Critical Bug Fix
Critical Bug Fix - Race Condition Crash
π Fixed Race Condition Crash During Back-to-Back Raids
BlueMeter would crash after 2-3 consecutive raids/encounters, especially in passthrough mode with "clear on instance change" enabled.
Error Fixed: System.ArgumentException: Destination array is not long enough to copy all the items in the collection
Root Cause
A threading race condition in DataStorage.cs where the packet processing thread and UI thread were simultaneously accessing DPS data dictionaries without synchronization.
Fix Applied
- Added thread-safe locking (
_dpsDataLock) to protect all DPS data dictionary operations - Protected list creation in cached list properties
- Protected dictionary modifications and clearing operations
Impact
- Eliminates crashes during extended play sessions with multiple consecutive encounters
- Minimal performance overhead from locking
- Fixes instability in high-activity scenarios (raids, World Boss Carnage)
Files Changed
BlueMeter.Core/Data/DataStorage.cs- Added thread synchronization
Special Thanks
- GitHub user
anguyen2015for reporting the crash with detailed error logs
π Installation Options
Option 1: Professional Installer (Recommended for most users)
- Download
BlueMeterSetup.exe - Double-click to run the installer
- Follow the setup wizard
- .NET 8.0 will be automatically installed if needed
- BlueMeter will launch automatically after installation
Option 2: Portable Build (For developers/advanced users)
- Download
BlueMeter-v1.5.2-windows-x64.zip - Extract the ZIP file
- Double-click
setup.bat - The script will build and launch BlueMeter
Requirements
- Windows 10 or later (x64)
- .NET 8.0 (auto-installed by both installation methods)
Full Release Notes: docs/RELEASE_NOTES_1.5.2.md