[MDEV-713] LP:625724 - Aria recovery assertion ma_recovery.c:2959: get_MARIA_HA_from_REDO_record: Assertion `((rec->lsn) - (checkpoint_start)) < 0' Created: 2010-08-28  Updated: 2020-05-28

Status: Open
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.0, 5.3.9, 5.1.62
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Philip Stoev (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Launchpad

Attachments: XML File LPexportBug625724.xml     Zip Archive LPexportBug625724_var-bug625724.zip    

 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



 Comments   
Comment by Philip Stoev (Inactive) [ 2010-08-28 ]

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.

Comment by Philip Stoev (Inactive) [ 2010-09-01 ]

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

Comment by Philip Stoev (Inactive) [ 2010-09-01 ]

core binary vardir
LPexportBug625724_var-bug625724.zip

Comment by Philip Stoev (Inactive) [ 2010-10-14 ]

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.

Comment by Philip Stoev (Inactive) [ 2011-01-09 ]

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.

Comment by Rasmus Johansson (Inactive) [ 2012-04-05 ]

Launchpad bug id: 625724

Generated at Thu Feb 08 06:30:47 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.