Skip to content

test_auth_methods-t: crashes with 'terminate called without an active exception' on MySQL 5.7 #5537

@renecannao

Description

@renecannao

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:

  1. The noise injection system spawns background threads (Spawned internal noise thread appears in the log)
  2. The test decides to skip and returns
  3. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions