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

Assertion `purge_sys.purge_queue.empty() || purge_sys.purge_queue.top() != m_rsegs' failed in TrxUndoRsegsIterator::set_next upon upgrade from 10.0/10.1

    XMLWordPrintable

    Details

      Description

      To reproduce:

      • download the datadir from here: ftp://ftp.askmonty.org/public/mdev15464-data.tar.gz
      • start 10.3 or 10.4 server with the following options:

        --file-key-management-filename=`pwd`/mysql-test/std_data/keys.txt --file-key-management --plugin-load-add=file_key_management.so --innodb-encrypt-tables --innodb-encrypt-log --innodb-encryption-threads=4 --aria-encrypt-tables=1 --encrypt-tmp-disk-tables=1 --encrypt-binlog --innodb-page-size=8K --innodb-compression-algorithm=zlib --loose-innodb-file-format=Barracuda --loose-innodb-file-per-table=1 --loose-max-statement-time=20 --loose-lock-wait-timeout=20 --loose-innodb-lock-wait-timeout=10 --loose-innodb_log_compressed_pages=on
        

        (modify the path to encryption keys if necessary, the sample file from MTR tests was used).

      The archived datadir was created by 10.1.37 release server, which was shut down properly at the end. General and error logs are in the same datadir, mysql.log and mysql.err.

      The failure happens upon 10.3/10.4 startup:

      10.3 2fd0acd30

      2018-12-09 17:38:15 0 [Note] InnoDB: Waiting for purge to start
      mysqld: /data/src/10.3/storage/innobase/trx/trx0purge.cc:95: bool TrxUndoRsegsIterator::set_next(): Assertion `purge_sys.purge_queue.empty() || purge_sys.purge_queue.top() != m_rsegs' failed.
      181209 17:38:15 [ERROR] mysqld got signal 6 ;
       
      #7  0x00007fe562d65ee2 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
      #8  0x000055d77bd8937d in TrxUndoRsegsIterator::set_next (this=0x55d77cb24e60 <purge_sys+416>) at /data/src/10.3/storage/innobase/trx/trx0purge.cc:94
      #9  0x000055d77bd87545 in trx_purge_choose_next_log () at /data/src/10.3/storage/innobase/trx/trx0purge.cc:1253
      #10 0x000055d77bd87799 in trx_purge_get_next_rec (n_pages_handled=0x7fe5317f9dd0, heap=0x55d77faf01d0) at /data/src/10.3/storage/innobase/trx/trx0purge.cc:1326
      #11 0x000055d77bd879e5 in trx_purge_fetch_next_rec (roll_ptr=0x7fe520011790, n_pages_handled=0x7fe5317f9dd0, heap=0x55d77faf01d0) at /data/src/10.3/storage/innobase/trx/trx0purge.cc:1396
      #12 0x000055d77bd87d0c in trx_purge_attach_undo_recs (n_purge_threads=4) at /data/src/10.3/storage/innobase/trx/trx0purge.cc:1469
      #13 0x000055d77bd881ef in trx_purge (n_purge_threads=4, truncate=false) at /data/src/10.3/storage/innobase/trx/trx0purge.cc:1599
      #14 0x000055d77bd5ab41 in srv_do_purge (n_total_purged=0x7fe5317f9ed0) at /data/src/10.3/storage/innobase/srv/srv0srv.cc:2597
      #15 0x000055d77bd5af6a in srv_purge_coordinator_thread (arg=0x0) at /data/src/10.3/storage/innobase/srv/srv0srv.cc:2720
      #16 0x00007fe564821494 in start_thread (arg=0x7fe5317fa700) at pthread_create.c:333
      #17 0x00007fe562e2293f in clone () from /lib/x86_64-linux-gnu/libc.so.6
      

      Not reproducible on 10.2.

      A similar failure has also been observed upon upgrade from 10.0.34 release, without encryption.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marko Marko Mäkelä
              Reporter:
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Git Integration