Aria recovery assertion page_offset >= keypage_header && page_offset <= page_length
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
MariaDB |
Fix Released
|
High
|
Michael Widenius |
Bug Description
when recovering from a KILL -9 after a DML workload involving numerous indexes, Aria 5.1 asserted as follows:
recovered pages: 0%mysqld: ma_key_
backtrace:
#8 0x00897de8 in __assert_fail () from /lib/libc.so.6
#9 0x0853431c in _ma_apply_
#10 0x0859cf20 in exec_REDO_
#11 0x0859aa4d in display_
#12 0x0859f4c4 in run_redo_phase (lsn=4294975495, lsn_end=0, apply=MARIA_
#13 0x0859a3be in maria_apply_log (from_lsn=
skip_DDLs_arg=1 '\001', take_checkpoints=1 '\001', warnings_
#14 0x0859a070 in maria_recovery_
#15 0x0851e0e5 in ha_maria_init (p=0xb2660c8) at ha_maria.cc:3259
#16 0x08397599 in ha_initialize_
#17 0x084526a7 in plugin_initialize (plugin=0xb24c7f8) at sql_plugin.cc:1039
#18 0x08452ec9 in plugin_init (argc=0x8a4b8d8, argv=0xb219870, flags=0) at sql_plugin.cc:1267
#19 0x0826be7b in init_server_
#20 0x0826c937 in main (argc=14, argv=0xbfcd5ae4) at mysqld.cc:4603
bzr version-info:
revision-id: <email address hidden>
date: 2010-08-11 13:55:54 +0300
build-date: 2010-08-11 16:22:55 +0300
revno: 2901
branch-nick: maria-5.1
Changed in maria: | |
importance: | Undecided → High |
assignee: | nobody → Michael Widenius (monty) |
milestone: | none → 5.1 |
Changed in maria: | |
status: | New → Incomplete |
Changed in maria: | |
status: | Incomplete → Fix Committed |
Changed in maria: | |
status: | Confirmed → Incomplete |
Changed in maria: | |
status: | Incomplete → In Progress |
I have tried to repeat this but without success.
The issue is that there is some wrong data in the maria recovery log file. I have pinpointed the code that generated the log file entry but can't find anything wrong with it.
To help find the bug I would need one or more of the following:
- A general log file of the queries issued
- The command that caused the failure.
What I have done in the mean time is adding some new asserts into the log generating code so that mysqld will assert if Aria attempts to generated such a wrong log entry. (Should make testing much easier).