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

Crash recovery after bulk load data reports corruption

    XMLWordPrintable

Details

    • Can result in unexpected behaviour

    Description

      --source include/have_innodb.inc
       
      --write_file $MYSQL_TMP_DIR/load.data
      1
      2
      EOF
       
      CREATE TABLE t (id INT AUTO_INCREMENT, PRIMARY KEY(id)) ENGINE=InnoDB;
      SET FOREIGN_KEY_CHECKS=0, UNIQUE_CHECKS=0, AUTOCOMMIT=0;
      eval LOAD DATA LOCAL INFILE '$MYSQL_TMP_DIR/load.data' INTO TABLE t;
      --let $shutdown_timeout=0
      --source include/restart_mysqld.inc
       
      DROP TABLE t;
      --remove_file $MYSQL_TMP_DIR/load.data
      

      10.11 96045fb53ac0c10bbc98cde8541ace9ba9826710

      2025-07-09 22:10:33 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=56255
      2025-07-09 22:10:33 0 [Note] InnoDB: End of log at LSN=60640
      2025-07-09 22:10:33 0 [ERROR] InnoDB: OPT_PAGE_CHECKSUM mismatch on [page id: space=5, page number=3]
      2025-07-09 22:10:33 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore corruption.
      mariadbd: /data/bld/10.11-asan-ubsan/storage/innobase/include/sux_lock.h:284: void sux_lock<ssux>::u_or_x_unlock(bool, bool) [with ssux = ssux_lock_impl<true>]: Assertion `o
      wner == pthread_self() || (owner == FOR_IO && claim_ownership && recursive == (allow_readers ? RECURSIVE_U : RECURSIVE_X))' failed.
      250709 22:10:33 [ERROR] /share8t/bld/10.11-asan-ubsan/sql/mariadbd got signal 6 ;
      

      11.4 dbeef00562dd7088a9f0163268f9eb5e5ba072fe

      2025-07-09 22:11:31 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=58636
      2025-07-09 22:11:31 0 [Note] InnoDB: End of log at LSN=61108
      2025-07-09 22:11:31 0 [Note] InnoDB: To recover: 23 pages
      2025-07-09 22:11:31 0 [ERROR] InnoDB: OPT_PAGE_CHECKSUM mismatch on [page id: space=8, page number=3]
      2025-07-09 22:11:31 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore corruption.
      2025-07-09 22:11:31 0 [Note] InnoDB: 1 transaction(s) which must be rolled back or cleaned up in total 1 row operations to undo
      

      The error and assertion failure appeared after this commit in 10.11.11:

      commit 2d42e9ff7d7bd61bf24b04c483d7a8fcff22abb5
      Author: Thirunarayanan Balathandayuthapani
      Date:   Wed Jan 15 18:30:03 2025 +0530
       
          MDEV-34703  LOAD DATA INFILE using Innodb bulk load aborts
      

      I'm not sure whether the test case is deterministic or not. On my debug builds it fails every time, and on release builds never. I can't say whether it signifies that only debug builds are affected or it is just different timing.

      Attachments

        Issue Links

          Activity

            People

              thiru Thirunarayanan Balathandayuthapani
              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.