Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-32748

debug_sync_set_action() Fails if Entered in an Error State

    XMLWordPrintable

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)
    • 10.6, 10.11
    • Debug, Tests
    • 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

          Activity

            People

              Unassigned Unassigned
              bnestere Brandon Nesterenko
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: