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

debug_sync_set_action() Fails if Entered in an Error State

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL)
    • 10.5, 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

        Activity

          There are no comments yet on this issue.

          People

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

            Dates

              Created:
              Updated:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.