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

'BACKUP STAGE BLOCK_DDL ' failed: 1213: Deadlock found

    XMLWordPrintable

Details

    Description

      Problem found during RQG testing with Mariabackup.
       
      1. Connection con_backup executes 
           BACKUP STAGE START;
           BACKUP STAGE FLUSH;
      2. Some observing connection "sees"
           CONNECTION  DB  COMMAND STATE   INFO    STAGE   MAX_STAGE   PROGRESS    EXAMINED_ROWS   INFO_BINARY
           con_backup  test    Sleep       NULL    0   0   0.000   0   NULL
           con_ddl test    Sleep       NULL    0   0   0.000   0   NULL
           CONNECTION  LOCK_MODE   LOCK_TYPE   TABLE_SCHEMA    TABLE_NAME
          con_backup  MDL_BACKUP_FLUSH    Backup lock 
      3. Connection con_ddl sends to the server a
           ALTER TABLE t1 COMMENT = " <some value> "
           t1 uses the storage engine MyISAM.
           I assume the problem is valid for storage engines which do not offer atomic statements.
           At least neither InnoDB nor Aria showed the bad effect.
      4. The connection con_observer waits some seconds so that con_ddl can do as much as it could
           do in the moment and "sees"
           CONNECTION  DB  COMMAND STATE   INFO    STAGE   MAX_STAGE   PROGRESS    EXAMINED_ROWS   INFO_BINARY
          con_backup  test    Sleep       NULL    0   0   0.000   0   NULL
          con_ddl test    Query   Waiting for backup lock ALTER TABLE t1 COMMENT = " 5 "  0   0   0.000   0   ALTER TABLE t1 COMMENT = " 5 "
         CONNECTION  LOCK_MODE   LOCK_TYPE   TABLE_SCHEMA    TABLE_NAME
         con_backup  MDL_BACKUP_FLUSH    Backup lock
         con_ddl MDL_SHARED_UPGRADABLE   Table metadata lock test    t1
         con_ddl MDL_INTENTION_EXCLUSIVE Schema metadata lock    test
         con_ddl MDL_BACKUP_DDL  Backup lock
      5. Now the connection con_backup issues a
          BACKUP STAGE BLOCK_DDL ;
          which harvests immediate a
          ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
       
      Please use the uploaded ml31_M.test for replaying that problem.
           
      MariaDB
      10.4.6 commit 592fe954ef82be1bc08b29a8e54f7729eb1e1343
         
      MariaDB Enterprise
       10.3.16 commit 2da55440ee4c83219b030b1f217f5c273a2541e8
       10.2.25 commit fd21ff94a2136f4c1ebb896987b7607b1d161cad
       
      MariaDB (non enterprise) 10.3.15 is not affected because it does not support BACKUP STAGE ...
      

      Attachments

        1. bs_2.tgz
          2 kB
        2. bs_2.log
          4 kB
        3. prt
          3 kB
        4. ml_31_M.test
          2 kB

        Issue Links

          Activity

            People

              monty Michael Widenius
              mleich Matthias Leich
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.