Skip to content

Commit

Permalink
MDEV-14174 crash on start with innodb-track-changed-pages
Browse files Browse the repository at this point in the history
The XtraDB option innodb_track_changed_pages causes
the function log_group_read_log_seg() to be invoked
even when recv_sys==NULL, leading to the SIGSEGV.

This regression was caused by
MDEV-11027 InnoDB log recovery is too noisy
  • Loading branch information
dr-m committed Jan 10, 2018
1 parent 84c9c8b commit a408e88
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
1 change: 1 addition & 0 deletions mysql-test/suite/innodb/t/innodb-master.opt
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@
--default-storage-engine=MyISAM
--innodb-strict-mode=0
--innodb-file-per-table=0
--loose-innodb-track-changed-pages
16 changes: 9 additions & 7 deletions storage/xtradb/log/log0log.c
Original file line number Diff line number Diff line change
Expand Up @@ -2503,7 +2503,6 @@ log_group_read_log_seg(
ulint len;
ulint source_offset;
ibool sync;
ib_time_t time;

ut_ad(mutex_own(&(log_sys->mutex)));

Expand Down Expand Up @@ -2540,13 +2539,16 @@ log_group_read_log_seg(
start_lsn += len;
buf += len;

time = ut_time();
if (recv_sys) {
ib_time_t time = ut_time();

if (recv_sys->progress_time - time >= 15) {
recv_sys->progress_time = time;
ut_print_timestamp(stderr);
fprintf(stderr, " InnoDB: Read redo log up to LSN=%llu\n",
start_lsn);
if (recv_sys->progress_time - time >= 15) {
recv_sys->progress_time = time;
ut_print_timestamp(stderr);
fprintf(stderr,
" InnoDB: Read redo log up to LSN=%llu\n",
start_lsn);
}
}

if (start_lsn != end_lsn) {
Expand Down

0 comments on commit a408e88

Please sign in to comment.