diff options
author | Guilhem Bichot <guilhem@mysql.com> | 2008-06-02 22:53:25 +0200 |
---|---|---|
committer | Guilhem Bichot <guilhem@mysql.com> | 2008-06-02 22:53:25 +0200 |
commit | a5bcb63f45f58f7c5f4f2387da521aa7a14b60be (patch) | |
tree | 7eaa8ccde458e0c059e01272c49894176fd01dba /KNOWN_BUGS.txt | |
parent | 2d64cd05e1b9cd3b76368af7db34335b88bea248 (diff) | |
download | mariadb-git-a5bcb63f45f58f7c5f4f2387da521aa7a14b60be.tar.gz |
WL#4374 "Maria - force start if Recovery fails multiple times"
http://forge.mysql.com/worklog/task.php?id=4374
new option --maria-force-start-after-recovery-failures=N; number of consecutive recovery failures (failures
of log reading or recovery processing, anything in [translog_init(),maria_recovery_from_log()])
is stored in the control file; if at a Maria start they are more than N, logs are removed. This is for automated
systems which have to run whatever happens. As tables risk staying corrupted, --maria-recover should also
be used on them: this revision makes maria-recover work (it was disabled).
Fixed bug in translog_is_log_files(). translog_init() now prints message to error log if failed.
Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
KNOWN_BUGS.txt:
As option --maria-force-start-after-recovery-failures is added, it corresponds to the wish "we should fix that if this happens etc".
LOAD INDEX is not ignored since a few weeks. Listed concurrency bugs have been fixed some time ago.
Recovery of fulltext and GIS indexes works since a few weeks.
mysql-test/include/maria_make_snapshot.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/include/maria_make_snapshot_for_comparison.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/include/maria_verify_recovery.inc:
configurable prefix in table's name (so far 't' or 't_corrupted')
mysql-test/lib/mtr_report.pl:
new test maria-recover.test generates expected corruption warnings in the error log. maria-recovery.test's corrupted table is renamed to t_corrupted1 instead of t1.
mysql-test/r/maria-preload.result:
result update. maria_pagecache_read* values are similar to the previous version of this file, though a bit bigger
because using the information_schema and the join leads to some internal maria temp table being used, and thus some
blocks of it being read.
mysql-test/r/maria-purge.result:
engine's name in SHOW ENGINE MARIA LOGS changed.
mysql-test/r/maria-recover.result:
result for new test. We see corruption messages at first SELECT and then none at second SELECT, expected.
mysql-test/r/maria-recovery.result:
result update
mysql-test/r/maria.result:
new variables show up
mysql-test/t/disabled.def:
BUG#34911 is not fixed but the test had been made independent of the bug (workaround). A new bug (crash) has popped recently, so it has to stay
disabled (BUG#35107).
mysql-test/t/maria-preload.test:
Work around BUG#34911 "FLUSH STATUS doesn't flush what it should":
compute differences in status variables before and after relevant queries
mysql-test/t/maria-recover-master.opt:
test --maria-recover
mysql-test/t/maria-recover.test:
Test of the --maria-recover option (build a corrupted table and see if it is auto-repaired)
mysql-test/t/maria-recovery-big.test:
update for new API of include/maria*.inc
mysql-test/t/maria-recovery-bitmap.test:
update for new API of include/maria*.inc
mysql-test/t/maria-recovery.test:
update for new API of include/maria*.inc. Corrupted table t1 renamed to t_corrupted1, so that mtr_report.pl
does not blindly remove all corruption messages for t1 which is
a common name.
storage/maria/ha_maria.cc:
Enabling maria-recover.
Adding option and global variable --maria_force_start_after_recovery_failures: ha_maria_init()
calls mark_recovery_start() and mark_recovery_success() to keep track of failed consecutive recoveries
and remove logs if needed.
Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
storage/maria/ma_checkpoint.c:
new prototype
storage/maria/ma_control_file.c:
Storing in one byte in the control file, the number of consecutive recovery failures.
storage/maria/ma_control_file.h:
new prototype
storage/maria/ma_init.c:
new prototype
storage/maria/ma_locking.c:
Need to update open_count on disk at first write and close for transactional tables, like we already did for
non-transactional tables, otherwise we cannot notice that the table is dubious.
storage/maria/ma_loghandler.c:
translog_is_log_files() is made more generic to serve either to search or to delete logs (the latter is
for --maria-force-start-after-recovery-failures). It also had a bug (always returned FALSE).
storage/maria/ma_loghandler.h:
export function because ha_maria::mark_recovery_start() needs it
storage/maria/ma_recovery.c:
changing name of maria_recover() to distinguish from the maria-recover option.
storage/maria/ma_recovery.h:
changing name of maria_recover() to distinguish from the maria-recover option.
storage/maria/ma_test_force_start.pl:
Test of --maria-force-start-after-recovery-failures (and also, to be realistic, of --maria-recover).
This is standalone because mysql-test-run does not support testing that multiple mysqld restarts expectedly failed.
I'll have to run it on my machine and also on a Windows machine.
storage/maria/unittest/ma_control_file-t.c:
adding recovery_failures to the test
storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
fix for compiler warning (unused variable in non-debug build)
Diffstat (limited to 'KNOWN_BUGS.txt')
-rw-r--r-- | KNOWN_BUGS.txt | 20 |
1 files changed, 1 insertions, 19 deletions
diff --git a/KNOWN_BUGS.txt b/KNOWN_BUGS.txt index 6ba40cf4550..3fd1a22d129 100644 --- a/KNOWN_BUGS.txt +++ b/KNOWN_BUGS.txt @@ -24,23 +24,9 @@ or in the worst case add it here for others to know! Known bugs that we are working on and will be fixed shortly =========================================================== -- If the log files are damaged or inconsistent, Maria may fail to start. - We should fix that if this happens and mysqld is restarted (thanks to - mysqld_safe, instance manager or other script) it should disregard the - old logs, start anyway and automaticly repair any tables that was found - to be crashed on open. - Temporary fix is to remove or maria_log.???????? files from the data - directory, restart mysqld and run CHECK TABLE / REPAIR TABLE or - mysqlcheck on your Maria tables - We have some instabilities in log writing that is under investigatation This causes mainly assert to triggers in the code and sometimes the log handler doesn't start up after restart. -- LOAD INDEX commands are for the moment ignored for Maria tables - (The code needs to be rewritten to do all reads through page cache to - avoid half-block reads) -- Some concurrency bugs in Maria's page cache which sometimes show up - under load http://bugs.mysql.com/bug.php?id=34161 and - http://bugs.mysql.com/bug.php?id=34634 . Known bugs that are planned to be fixed before Beta =================================================== @@ -61,19 +47,15 @@ Known bugs that are planned to be fixed before Beta Missing features that is planned to fix before Beta =================================================== -- We will add an maria-recover option to automaticly repair any - crashed tables on open. (This is needed for not transactional tables - and also in edge cases for transactional tables when the table - crashed because of a bug in MySQL or Maria code) - Multiple concurrent inserts & multiple concurrent readers at same time with full MVCC control. Note that UPDATE and DELETE will still be blocking (as with MyISAM) - COUNT(*) and TABLE CHECKSUM under MVCC (ie, they are instant and kept up to date even with multiple inserter) -- Recovery of fulltext and GIS indexes. Features planned for future releases ==================================== http://forge.mysql.com/worklog/ +(you can enter "maria" in the "quick search" field there). |