Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.6, 10.11, 10.4(EOL), 10.5(EOL), 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 11.0(EOL), 11.1(EOL), 11.2(EOL)
-
None
Description
If invoking debug_sync_set_action(thd, ...) when thd->is_error() is true, it will return in error itself, even if the synchronization worked correctly. This is because of the following condition in its logic:
if (unlikely(thd->is_error()))
|
DBUG_RETURN(TRUE);
|
This means the established pattern of
DBUG_ASSERT(!debug_sync_set_action(thd,...))
|
will throw the DBUG_ASSERT when trying to synchronize threads during error handling.
It seems valid to synchronize in an error state, and debug_sync_set_action() should only return in error if it itself errors, and not if simply invoked in an already err'd out state.
Attachments
Issue Links
- relates to
-
MDEV-21361 +d,-d may break consistent state of DEBUG_DBUG
-
- Open
-