MDEV-17289 Multi-pass recovery fails to apply some redo log records
This is a regression caused by commit 73af8af0 (MDEV-15325 Incomplete validation of missing tablespace during recovery). If the recv_sys->addr_hash hash table ran out of memory, we would have to do crash recovery in multiple passes. If some tablespaces were missing, after the MDEV-15325 fix we would rescan the remaining redo log. But, we could incorrectly reset the "rescan" flag. Because of this, we would fail to apply some of the oldest redo log records to the data files. (The recv_sys->addr_hash would only contain records from the latest redo log scan batch.) Fix: After checking for missing tablespaces, reset the flag rescan=true, so that all redo log records will be re-read and applied.
Showing
Please register or sign in to comment