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

Auto-repair doesn't work under LOCK TABLES

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
    • 10.5
    • Locking, Server
    • None
    • Patched myisam_recover.test (attached patch u.diff)

    Description

      Reproduce

      Patch myisam_recover.test and run

      --- a/mysql-test/t/myisam_recover.test
      +++ b/mysql-test/t/myisam_recover.test
      @@ -88,6 +88,8 @@ flush table t1;
       --remove_file $MYSQLD_DATADIR/test/t1.MYI
       --copy_file $MYSQLD_DATADIR/test/t1_copy.MYI $MYSQLD_DATADIR/test/t1.MYI
       --remove_file $MYSQLD_DATADIR/test/t1_copy.MYI
      +lock tables t1 write, t1_mrg write;
      +flush table t1;
       --echo # check table is needed to mark the table as crashed.
       check table t1;
       --echo #
      @@ -100,6 +102,8 @@ select * from t1_mrg;
       --echo #
       --echo # Cleanup
       --echo #
      +unlock tables;
      +select * from t1_mrg;
       drop table t1, t1_mrg;
       connection con1;
       unlock tables;
      

      Result

      --- /home/midenok/src/mariadb/10.2/src/mysql-test/r/myisam_recover.result       2019-11-07 10:25:52.814204742 +0300
      +++ /home/midenok/src/mariadb/10.2/src/mysql-test/r/myisam_recover.reject       2020-04-18 18:38:52.040652191 +0300
      @@ -66,6 +66,8 @@
       flush table t1;
       insert into  t1 (a) values (4), (5), (6);
       flush table t1;
      +lock tables t1 write, t1_mrg write;
      +flush table t1;
       # check table is needed to mark the table as crashed.
       check table t1;
       Table  Op      Msg_type        Msg_text
      @@ -86,13 +88,22 @@
       4
       5
       6
      -Warnings:
      -Error  145     Table 't1' is marked as crashed and should be repaired
      -Error  1194    Table 't1' is marked as crashed and should be repaired
      -Error  1034    Number of rows changed from 3 to 6
       #
       # Cleanup
       #
      +unlock tables;
      +select * from t1_mrg;
      +a
      +1
      +2
      +3
      +4
      +5
      +6
      +Warnings:
      +Error  145     Table './test/t1' is marked as crashed and should be repaired
      +Error  1194    Table 't1' is marked as crashed and should be repaired
      +Error  1034    Number of rows changed from 3 to 6
       drop table t1, t1_mrg;
       connection con1;
       unlock tables;
      

      As we see auto-repair moved from original SELECT to the next one executed after table is unlocked.

      Attachments

        1. u.diff
          0.7 kB
          Aleksey Midenkov

        Issue Links

          Activity

            People

              midenok Aleksey Midenkov
              midenok Aleksey Midenkov
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.