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

fseg_free_page_low() fails to write FREE_PAGE record, breaking recovery

    XMLWordPrintable

    Details

      Description

      Workflow of the RQG test
       
      1. Create DB server and start it
      2. One session starts to run some SQL stream against this server
      3. At some point of time and not related to the state (waiting for result, sending statement, ...) of  the ongoing 2. the server process gets killed (KILL and not TERM).
      4. Make some copy of the data content+logs etc. of the killed server.
      5. Try to restart the killed server.
       
      5. fails with
      ...
      2020-04-03  8:58:49 0 [Note] InnoDB: Starting crash recovery from checkpoint LSN=117659470
      2020-04-03  8:58:49 0 [Note] InnoDB: Transaction 2264 was in the XA prepared state.
      2020-04-03  8:58:49 0 [Note] InnoDB: 1 transaction(s) which must be rolled back or cleaned up in total 0 row operations to undo
      2020-04-03  8:58:49 0 [Note] InnoDB: Trx id counter is 2265
      2020-04-03  8:58:49 0 [Note] InnoDB: Starting final batch to recover 133 pages from redo log.
      2020-04-03  8:58:50 0 [ERROR] InnoDB: Not applying INSERT_HEAP_DYNAMIC due to corruption on [page id: space=5, page number=68]
      2020-04-03  8:58:50 0 [ERROR] InnoDB: Set innodb_force_recovery=1 to ignore corruption.
      2020-04-03  8:58:50 0 [ERROR] InnoDB: Plugin initialization aborted at srv0start.cc[1574] with error Data structure corruption
      ...
      2020-04-03  8:58:50 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
      2020-04-03  8:58:50 0 [Note] Plugin 'FEEDBACK' is disabled.
       
      RQG
      git clone https://github.com/mleich1/rqg --branch experimental RQG_mleich1
      origin/experimental d417497b476e263428422b4640cf63b8e9d16afe 2020-03-30T17:17:54+02:00
       
      MariaDB
      origin/10.5 0870b75af7d01f2e8132278aeb0873dd6c65d1be 2020-04-03T08:50:46+03:00
      build with debug
       
      cd <top directory of tree with RQG>
      perl rqg.pl \
      --duration=120 \
      --queries=10000000 \
      --threads=1 \
      --no_mask \
      --seed=random \
      --engine=InnoDB \
      --gendata=conf/engines/many_indexes.zz \
      --rpl_mode=none \
      --mysqld=--innodb_page_size=32K \
      --mysqld=--net_read_timeout=30 \
      --mysqld=--lock-wait-timeout=86400 \
      --mysqld=--loose-table_lock_wait_timeout=50 \
      --mysqld=--loose-idle_readonly_transaction_timeout=0 \
      --mysqld=--innodb-lock-wait-timeout=50 \
      --mysqld=--loose-debug_assert_on_not_freed_memory=0 \
      --mysqld=--net_write_timeout=60 \
      --mysqld=--wait_timeout=28800 \
      --mysqld=--log_bin_trust_function_creators=1 \
      --mysqld=--connect_timeout=60 \
      --mysqld=--log-bin \
      --mysqld=--loose-idle_write_transaction_timeout=0 \
      --mysqld=--loose-idle_transaction_timeout=0 \
      --mysqld=--interactive_timeout=28800 \
      --mysqld=--loose_innodb_use_native_aio=1 \
      --mysqld=--slave_net_timeout=60 \
      --mysqld=--innodb_stats_persistent=off \
      --mysqld=--log-output=none \
      --mysqld=--loose_innodb_lock_schedule_algorithm=fcfs \
      --reporters=CrashRecovery1,Deadlock1,ErrorLog,None,ServerDead \
      --validators=None \
      --grammar=rqg.yy \
      --workdir=<local setting> \
      --vardir=<local setting> \
      --mtr-build-thread=<local setting> \
      --basedir1=<path to binaries>
       
      The uploaded RQG protocol "rqg.log" shows exact that RQG run.
      

        Attachments

        1. rqg.log
          82 kB
        2. rqg.yy
          0.5 kB

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              mleich Matthias Leich
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: