Problem
test_auth_methods-t correctly detects MySQL 5.7 and decides to skip, but then crashes instead of exiting cleanly.
Error
This test requires MySQL 8.0+ but backend is version 50744. Skipping.
terminate called without an active exception
Root cause
terminate called without an active exception in C++ typically means a std::thread object is being destroyed while still joinable (without calling join() or detach()). This likely happens because:
- The noise injection system spawns background threads (
Spawned internal noise thread appears in the log)
- The test decides to skip and returns
- The noise threads'
std::thread objects go out of scope without being joined
Fix
The test's early-exit path needs to properly stop and join the noise threads before returning. Alternatively, the noise thread lifecycle should be managed by RAII (e.g., a guard that joins on destruction).
Note
The test has been moved from legacy-g2 to mysql84-g2 only, so this crash no longer affects MySQL 5.7 test runs. But the underlying cleanup bug should still be fixed for robustness.
Problem
test_auth_methods-tcorrectly detects MySQL 5.7 and decides to skip, but then crashes instead of exiting cleanly.Error
Root cause
terminate called without an active exceptionin C++ typically means astd::threadobject is being destroyed while still joinable (without callingjoin()ordetach()). This likely happens because:Spawned internal noise threadappears in the log)std::threadobjects go out of scope without being joinedFix
The test's early-exit path needs to properly stop and join the noise threads before returning. Alternatively, the noise thread lifecycle should be managed by RAII (e.g., a guard that joins on destruction).
Note
The test has been moved from
legacy-g2tomysql84-g2only, so this crash no longer affects MySQL 5.7 test runs. But the underlying cleanup bug should still be fixed for robustness.