Activity log for bug #1658055

Date Who What changed Old value New value Message
2017-01-20 11:10:11 Laurynas Biveinis bug added bug
2017-01-20 11:10:32 Laurynas Biveinis nominated for series percona-server/5.5
2017-01-20 11:10:32 Laurynas Biveinis bug task added percona-server/5.5
2017-01-20 11:10:32 Laurynas Biveinis nominated for series percona-server/5.7
2017-01-20 11:10:32 Laurynas Biveinis bug task added percona-server/5.7
2017-01-20 11:10:32 Laurynas Biveinis nominated for series percona-server/5.6
2017-01-20 11:10:32 Laurynas Biveinis bug task added percona-server/5.6
2017-01-20 11:10:38 Laurynas Biveinis percona-server/5.5: assignee Laurynas Biveinis (laurynas-biveinis)
2017-01-20 11:10:40 Laurynas Biveinis percona-server/5.6: assignee Laurynas Biveinis (laurynas-biveinis)
2017-01-20 11:10:41 Laurynas Biveinis percona-server/5.7: assignee Laurynas Biveinis (laurynas-biveinis)
2017-01-20 11:10:43 Laurynas Biveinis percona-server/5.5: importance Undecided High
2017-01-20 11:10:45 Laurynas Biveinis percona-server/5.6: importance Undecided High
2017-01-20 11:10:46 Laurynas Biveinis percona-server/5.7: importance Undecided High
2017-01-20 11:10:49 Laurynas Biveinis percona-server/5.5: status New In Progress
2017-01-20 11:10:51 Laurynas Biveinis percona-server/5.6: status New Triaged
2017-01-20 11:10:53 Laurynas Biveinis percona-server/5.7: status New Triaged
2017-01-20 11:11:05 Laurynas Biveinis tags bitmap xtradb
2017-01-23 08:33:10 Laurynas Biveinis description On server startup, log tracking tries to find the last good bitmap data, discard any later junk, and re-track its log. The intention of the algorithm is to open the last bitmap file, read the last page, check its checksum and last-page flag, and if either check fails, discard it, and seek back in the file. However, the read loop condition currently is "while (!checksum_ok && read_offset > 0 && !is_last_page)", that is, only read back if both the checksum is wrong and the last page flag is set. This is invalid logic, it should either-or condition. This results in log initializer stopping too early in the backward search, re-reading too little log, and creating a hole in the available bitmap data after crash recovery, breaking fast backups. On server startup, log tracking tries to find the last good bitmap data, discard any later junk, and re-track its log. The intention of the algorithm is to open the last bitmap file, read the last page, check its checksum and last-page flag, and if either check fails, discard it, and seek back in the file. However, the read loop condition currently is "while (!checksum_ok && read_offset > 0 && !is_last_page)", that is, only read back if both the checksum is wrong and the last page flag is set. This is invalid logic, it should either-or condition. This results in log initializer stopping too early in the backward search, discarding the whole of the last bitmap file, and either regenerating its data if possible to re-read log, or needlessly creating a hole in bitmap-covered LSN range otherwise.
2017-01-23 08:44:43 Laurynas Biveinis percona-server/5.5: status In Progress Fix Committed
2017-01-23 08:44:45 Laurynas Biveinis percona-server/5.6: status Triaged In Progress
2017-01-23 11:20:08 Laurynas Biveinis percona-server/5.6: status In Progress Fix Committed
2017-01-23 11:20:10 Laurynas Biveinis percona-server/5.7: status Triaged Fix Committed
2017-02-24 13:37:23 Laurynas Biveinis percona-server/5.5: milestone 5.5.54-38.7
2017-02-24 13:37:24 Laurynas Biveinis percona-server/5.6: milestone 5.6.36-80.1
2017-02-24 13:37:26 Laurynas Biveinis percona-server/5.7: milestone 5.7.18-12
2017-02-24 13:37:31 Laurynas Biveinis percona-server/5.7: status Fix Committed Fix Released
2017-02-24 13:37:35 Laurynas Biveinis percona-server/5.5: status Fix Committed Fix Released
2017-02-24 13:37:38 Laurynas Biveinis percona-server/5.6: status Fix Committed Fix Released
2017-03-21 03:20:06 Laurynas Biveinis summary Log tracking initialisation does not find the last good bitmap data correctly Log tracking initialisation does not find last valid bitmap data correctly