Skip to content

Release v1.5.2 - Critical Bug Fix

Choose a tag to compare

@github-actions github-actions released this 09 Dec 14:23
· 29 commits to main since this release

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 anguyen2015 for reporting the crash with detailed error logs

πŸš€ Installation Options

Option 1: Professional Installer (Recommended for most users)

  1. Download BlueMeterSetup.exe
  2. Double-click to run the installer
  3. Follow the setup wizard
  4. .NET 8.0 will be automatically installed if needed
  5. BlueMeter will launch automatically after installation

Option 2: Portable Build (For developers/advanced users)

  1. Download BlueMeter-v1.5.2-windows-x64.zip
  2. Extract the ZIP file
  3. Double-click setup.bat
  4. 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