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

main.delayed fails with wrong error code or timeout when executed after main.deadlock_ftwrl

Details

    Description

      When main.delayed is run after main.deadlock_ftwrl, it fails, seemingly reliably, with "succeeded - should have failed with errno 1213":

      10.4 5e04c08d

      perl ./mtr --mem --noreorder main.deadlock_ftwrl main.delayed
       
      main.deadlock_ftwrl                      [ pass ]     14
      main.delayed                             [ fail ]
              Test ended at 2022-01-17 02:29:06
       
      CURRENT_TEST: main.delayed
      mysqltest: At line 494: query 'INSERT DELAYED INTO t1 VALUES (4)' succeeded - should have failed with errno 1213...
       
      The result from queries just before the failure was:
      < snip >
      connection con1;
      # Sending:
      ALTER TABLE t1 MODIFY a INT UNSIGNED;;
      connection default;
      # Wait until ALTER TABLE is blocked on table 't1'.
      INSERT DELAYED INTO t1 VALUES (3);
      ERROR 40001: Deadlock found when trying to get lock; try restarting transaction
      COMMIT;
      connection con1;
      # Reaping: ALTER TABLE t1 COMMENT 'test'
      # Test 3: Using RENAME TABLE
      connection default;
      START TRANSACTION;
      INSERT INTO t2 VALUES (1);
      connection con1;
      # Sending:
      RENAME TABLE t1 to t5, t2 to t4;
      connection default;
      # Wait until RENAME TABLE is blocked on table 't1'.
      INSERT DELAYED INTO t1 VALUES (4);
      

      With one more test in the chain it hangs instead, also seemingly reliably:

      perl ./mtr --mem --noreorder main.ddl_i18n_koi8r main.deadlock_ftwrl main.delayed
       
      main.ddl_i18n_koi8r                      [ pass ]    733
      main.deadlock_ftwrl                      [ pass ]      8
      worker[1] Trying to dump core for [mysqltest - pid: 3093574, winpid: 3093574]
      worker[1] Trying to dump core for [mysqld.1 - pid: 3093506, winpid: 3093506]
      main.delayed                             [ fail ]  timeout after 120 seconds
      

      main.deadlock_ftwrl was added in 10.4 by this commit:

      commit fa5f60681fe4ed9d5bb160e551381cb7b1be5850
      Author: Rinat Ibragimov
      Date:   Thu Jun 18 01:11:39 2020 +0300
       
          MDEV-20946: Hard FTWRL deadlock under user level locks
      

      I suppose the chain of tests has been failing ever since, but I didn't check.

      Attachments

        Activity

          This also fails in 10.9 MemorySanitizer pretty often:

          main.deadlock_ftwrl                      w5 [ pass ]     56
          main.debug_sync                          w5 [ pass ]    188
          main.default_debug                       w5 [ pass ]     19
          main.ddl_i18n_koi8r                      w2 [ pass ]   3677
          main.default_session                     w5 [ pass ]    145
          main.ddl_i18n_utf8                       w6 [ pass ]   3919
          main.default_storage_engine              w2 [ pass ]   1045
          main.ctype_utf8mb4_uca_allkeys400        w4 [ pass ]  24118
          main.ctype_utf8mb4_uca_allkeys520        w1 [ pass ]  33034
          stress.ddl_innodb 'innodb'               w3 [ pass ]  185330
          worker[5] Trying to dump core for [mysqltest - pid: 306085, winpid: 306085]
          worker[5] Trying to dump core for [mysqld.1 - pid: 305590, winpid: 305590]
          main.delayed                             w5 [ fail ]  timeout after 900 seconds
          

          marko Marko Mäkelä added a comment - This also fails in 10.9 MemorySanitizer pretty often: main.deadlock_ftwrl w5 [ pass ] 56 main.debug_sync w5 [ pass ] 188 main.default_debug w5 [ pass ] 19 main.ddl_i18n_koi8r w2 [ pass ] 3677 main.default_session w5 [ pass ] 145 main.ddl_i18n_utf8 w6 [ pass ] 3919 main.default_storage_engine w2 [ pass ] 1045 main.ctype_utf8mb4_uca_allkeys400 w4 [ pass ] 24118 main.ctype_utf8mb4_uca_allkeys520 w1 [ pass ] 33034 stress.ddl_innodb 'innodb' w3 [ pass ] 185330 worker[5] Trying to dump core for [mysqltest - pid: 306085, winpid: 306085] worker[5] Trying to dump core for [mysqld.1 - pid: 305590, winpid: 305590] main.delayed w5 [ fail ] timeout after 900 seconds

          People

            serg Sergei Golubchik
            elenst Elena Stepanova
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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