mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 22:12:30 +01:00
branches/zip: recv_parse_log_rec(): Remove a bogus assertion about page_no.
TODO: We might also consider removing recv_max_parsed_page_no, because it does not make much sense with *.ibd files. recv_report_corrupt_log(), recv_scan_log_recs(): Abort when a corrupted log record has been found, unless innodb_force_recovery has been set. This fixes Issue #464. rb://265 approved by Heikki Tuuri
This commit is contained in:
parent
48cf851d1e
commit
6c7ddbe2ed
2 changed files with 25 additions and 9 deletions
|
@ -1,3 +1,10 @@
|
|||
2010-03-10 The InnoDB Team
|
||||
|
||||
* log/log0recv.c:
|
||||
Remove a bogus assertion about page numbers exceeding 0x90000000
|
||||
in the redo log. Abort when encountering a corrupted redo log
|
||||
record, unless innodb_force_recovery is set.
|
||||
|
||||
2010-03-09 The InnoDB Team
|
||||
|
||||
* handler/ha_innodb.cc:
|
||||
|
|
|
@ -2052,15 +2052,6 @@ recv_parse_log_rec(
|
|||
}
|
||||
#endif /* UNIV_LOG_LSN_DEBUG */
|
||||
|
||||
/* Check that page_no is sensible */
|
||||
|
||||
if (UNIV_UNLIKELY(*page_no > 0x8FFFFFFFUL)) {
|
||||
|
||||
recv_sys->found_corrupt_log = TRUE;
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
new_ptr = recv_parse_or_apply_log_rec_body(*type, new_ptr, end_ptr,
|
||||
NULL, NULL);
|
||||
if (UNIV_UNLIKELY(new_ptr == NULL)) {
|
||||
|
@ -2169,6 +2160,14 @@ recv_report_corrupt_log(
|
|||
putc('\n', stderr);
|
||||
}
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
if (!srv_force_recovery) {
|
||||
fputs("InnoDB: Set innodb_force_recovery"
|
||||
" to ignore this error.\n", stderr);
|
||||
ut_error;
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
fputs("InnoDB: WARNING: the log file may have been corrupt and it\n"
|
||||
"InnoDB: is possible that the log scan did not proceed\n"
|
||||
"InnoDB: far enough in recovery! Please run CHECK TABLE\n"
|
||||
|
@ -2683,6 +2682,16 @@ recv_scan_log_recs(
|
|||
|
||||
recv_sys->found_corrupt_log = TRUE;
|
||||
|
||||
#ifndef UNIV_HOTBACKUP
|
||||
if (!srv_force_recovery) {
|
||||
fputs("InnoDB: Set"
|
||||
" innodb_force_recovery"
|
||||
" to ignore this error.\n",
|
||||
stderr);
|
||||
ut_error;
|
||||
}
|
||||
#endif /* !UNIV_HOTBACKUP */
|
||||
|
||||
} else if (!recv_sys->found_corrupt_log) {
|
||||
more_data = recv_sys_add_to_parsing_buf(
|
||||
log_block, scanned_lsn);
|
||||
|
|
Loading…
Reference in a new issue