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

LP:625724 - Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0'

    Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 10.0.0, 5.3.9, 5.1.62
    • Fix Version/s: 5.3.13, 5.2.15, 5.1.73, 10.0, 5.5
    • Component/s: None
    • Labels:

      Description

      Update by Elena on 2012-11-01:

      I could not reproduce the problem using the RQG workload from the initial description, but the assertion itself is still reproducible by trying to start the server on the attached datadir.

      So, to get the assertion, I don't recommend spending time trying to run the RQG test. Instead,

      • download and unzip the attached zip archive, it will create var-bug625724 folder;
      • start debug MySQL server with --datadir=<path>/var-bug625724/master-data

      It takes time, about 5-10 min, but then fails with the described assertion.

      I tried to do the same on a release (non-debug) server, nothing bad seems to happen, the server starts and works, no complaints in the log, which is why I'm setting the priority to Minor for now.

      Reproducible on maria/5.1 revno 3151, maria/5.3 revno 3589, maria/10.0 revno 3467. I didn't check maria/5.2, but presumably it shouldn't be any different there.

      ==============================
      Initial description:

      When recovering from a DML workload, aria asserted as follows:

      recovered pages: 0% 10% 20%mysqld: ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0' failed.

      rqg command line :

       perl runall.pl --basedir=/home/philips/bzr/maria-5.2/ --grammar=conf/smf/smf2.yy --mysqld=--init_file=/home/philips/bzr/randgen-smf/conf/smf/smf2.sql --queries=10M --duration=360 --engine=Maria --mysqld=--skip-innodb --mysqld=--default-storage-engine=Maria --duration=600 --mysqld=--log-output=file --mem --duration=3600 --reporter=Recovery --mysqld=--maria-checkpoint-interval=0
      
      $ bzr version-info
      revision-id: <email address hidden>
      date: 2010-08-25 01:47:52 +0300
      build-date: 2010-08-28 11:54:04 +0300
      revno: 2848
      branch-nick: maria-5.2
      

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            philipstoev Philip Stoev added a comment -

            Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0'
            Backtrace:

            #8 0x0046bd98 in __assert_fail () from /lib/libc.so.6
            #9 0x085b4ac6 in get_MARIA_HA_from_REDO_record (rec=0xbfc76640) at ma_recovery.c:2959
            #10 0x085b0f76 in exec_REDO_LOGREC_REDO_INSERT_ROW_HEAD (rec=0xbfc76640) at ma_recovery.c:1368
            #11 0x085af1b5 in display_and_apply_record (log_desc=0x9285578, rec=0xbfc76640) at ma_recovery.c:551
            #12 0x085b3cae in run_redo_phase (lsn=4294975495, lsn_end=0, apply=MARIA_LOG_APPLY) at ma_recovery.c:2563
            #13 0x085aeb36 in maria_apply_log (from_lsn=4294975495, end_lsn=0, apply=MARIA_LOG_APPLY, trace_file=0xa6c1810, should_run_undo_phase=1 '\001',
            skip_DDLs_arg=1 '\001', take_checkpoints=1 '\001', warnings_count=0xbfc791f4) at ma_recovery.c:324
            #14 0x085ae7e8 in maria_recovery_from_log () at ma_recovery.c:221
            #15 0x085319e9 in ha_maria_init (p=0xa6cda78) at ha_maria.cc:3295
            #16 0x083a3961 in ha_initialize_handlerton (plugin=0xa6b3dc0) at handler.cc:431
            #17 0x08461b89 in plugin_initialize (plugin=0xa6b3dc0) at sql_plugin.cc:1239
            #18 0x084623ab in plugin_init (argc=0x8a6e718, argv=0xa67b3c0, flags=0) at sql_plugin.cc:1467
            #19 0x08271761 in init_server_components () at mysqld.cc:4175
            #20 0x08272227 in main (argc=14, argv=0xbfc797f4) at mysqld.cc:4649

            Note that the RQG was run with --mem, and it is possible that the test ran out of disk space at some point.

            Show
            philipstoev Philip Stoev added a comment - Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0' Backtrace: #8 0x0046bd98 in __assert_fail () from /lib/libc.so.6 #9 0x085b4ac6 in get_MARIA_HA_from_REDO_record (rec=0xbfc76640) at ma_recovery.c:2959 #10 0x085b0f76 in exec_REDO_LOGREC_REDO_INSERT_ROW_HEAD (rec=0xbfc76640) at ma_recovery.c:1368 #11 0x085af1b5 in display_and_apply_record (log_desc=0x9285578, rec=0xbfc76640) at ma_recovery.c:551 #12 0x085b3cae in run_redo_phase (lsn=4294975495, lsn_end=0, apply=MARIA_LOG_APPLY) at ma_recovery.c:2563 #13 0x085aeb36 in maria_apply_log (from_lsn=4294975495, end_lsn=0, apply=MARIA_LOG_APPLY, trace_file=0xa6c1810, should_run_undo_phase=1 '\001', skip_DDLs_arg=1 '\001', take_checkpoints=1 '\001', warnings_count=0xbfc791f4) at ma_recovery.c:324 #14 0x085ae7e8 in maria_recovery_from_log () at ma_recovery.c:221 #15 0x085319e9 in ha_maria_init (p=0xa6cda78) at ha_maria.cc:3295 #16 0x083a3961 in ha_initialize_handlerton (plugin=0xa6b3dc0) at handler.cc:431 #17 0x08461b89 in plugin_initialize (plugin=0xa6b3dc0) at sql_plugin.cc:1239 #18 0x084623ab in plugin_init (argc=0x8a6e718, argv=0xa67b3c0, flags=0) at sql_plugin.cc:1467 #19 0x08271761 in init_server_components () at mysqld.cc:4175 #20 0x08272227 in main (argc=14, argv=0xbfc797f4) at mysqld.cc:4649 Note that the RQG was run with --mem, and it is possible that the test ran out of disk space at some point.
            Hide
            philipstoev Philip Stoev added a comment -

            core binary vardir
            LPexportBug625724_var-bug625724.zip

            Show
            philipstoev Philip Stoev added a comment - core binary vardir LPexportBug625724_var-bug625724.zip
            Hide
            philipstoev Philip Stoev added a comment -

            Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0'

            Show
            philipstoev Philip Stoev added a comment - Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0'
            Hide
            philipstoev Philip Stoev added a comment -

            Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0'
            Still present with

            revno: 2951
            committer: Michael Widenius <monty@askmonty.org>
            branch nick: maria-5.1
            timestamp: Wed 2010-10-13 18:15:43 +0300
            message:
            Fixes for bugs found by running test case for LP#608369 "Page: 1 Found wrong page type 0' on CHECK TABLE EXTENDED"
            Fixed overflow when using long --debug=xxxxxx line.
            Fixed that "mysqld --disable-debug --debug" works.
            Ensure that MariaDB doesn't start if the Aria engine didn't start and we are using Aria for temporary tables.
            More DBUG_ASSERT() and more info in debug log.

            Show
            philipstoev Philip Stoev added a comment - Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0' Still present with revno: 2951 committer: Michael Widenius <monty@askmonty.org> branch nick: maria-5.1 timestamp: Wed 2010-10-13 18:15:43 +0300 message: Fixes for bugs found by running test case for LP#608369 "Page: 1 Found wrong page type 0' on CHECK TABLE EXTENDED" Fixed overflow when using long --debug=xxxxxx line. Fixed that "mysqld --disable-debug --debug" works. Ensure that MariaDB doesn't start if the Aria engine didn't start and we are using Aria for temporary tables. More DBUG_ASSERT() and more info in debug log.
            Hide
            philipstoev Philip Stoev added a comment -

            Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0'
            Still present with:

            revno: 3006
            committer: Michael Widenius <monty@askmonty.org>
            branch nick: maria-5.1
            timestamp: Fri 2011-01-07 17:58:12 +0200
            message:
            Don't do DBUG_ASSERT for checksum errors when using REPAIR
            mysql_convert_table_format ignored --engine option.
            Fix that zerofill() doesn't write out wrong data to client if run with auto repair.
            Ensure that pagecache is properly flushed, even in case of errors.
            Handle checksum errors in BLOCK_RECORD format.

            Show
            philipstoev Philip Stoev added a comment - Re: Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0' Still present with: revno: 3006 committer: Michael Widenius <monty@askmonty.org> branch nick: maria-5.1 timestamp: Fri 2011-01-07 17:58:12 +0200 message: Don't do DBUG_ASSERT for checksum errors when using REPAIR mysql_convert_table_format ignored --engine option. Fix that zerofill() doesn't write out wrong data to client if run with auto repair. Ensure that pagecache is properly flushed, even in case of errors. Handle checksum errors in BLOCK_RECORD format.
            Hide
            ratzpo Rasmus Johansson added a comment -

            Launchpad bug id: 625724

            Show
            ratzpo Rasmus Johansson added a comment - Launchpad bug id: 625724

              People

              • Assignee:
                monty Michael Widenius
                Reporter:
                philipstoev Philip Stoev
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated: