innodb_log_block_size mismatch between log files and current configuration is diagnosed as "No valid checkpoints found"

Bug #1155156 reported by Laurynas Biveinis
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Percona Server moved to https://jira.percona.com/projects/PS
Status tracked in 5.7
5.1
Won't Fix
Medium
Unassigned
5.5
Fix Released
Medium
Laurynas Biveinis
5.6
Fix Released
Medium
Laurynas Biveinis
5.7
Invalid
Undecided
Unassigned

Bug Description

PS 5.5 stores the non-default innodb_log_block_size value at a log file header offset 64. Verify that the server fails to start up with appropriate diagnostics if non-zero found there. Look into creating an MTR testcase for this (might be impossible, because MTR does not seem to support "server failed to start" tests).

Tags: xtradb i64171
summary: - Upgrade from non-default innodb_log_block_size to 5.6 should work
+ Server should diagnose non-standard innodb_log_block_size on 5.6 upgrade
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : Re: Server should diagnose non-standard innodb_log_block_size on 5.6 upgrade

Nevermind, we are porting the feature forward.

Revision history for this message
Alexey Kopytov (akopytov) wrote :

I agree that the problem itself is irrelevant wrt 5.5 -> 5.6 upgrade. But it's actually about changing innodb_log_block_size without recreating the log files. Currently the error message is rather misleading "No valid checkpoints found". If we do know the block size used to create them, should we have a more descriptive diagnostics? In which case, it applies to all branches.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : Re: Verify innodb_log_block_size mismatch diagnostics

XtraDB patches

 if (log_hdr_log_block_size != srv_log_block_size) {
  fprintf(stderr,
   "InnoDB: Error: The block size of ib_logfile (%lu) "
   "is not equal to innodb_log_block_size.\n"
   "InnoDB: Error: Suggestion - Recreate log files.\n",
   log_hdr_log_block_size);
  return(DB_ERROR);
 }

Since you report "No valid checkpoints instead", let's keep this bug open for checking if the above diagnostics happens too late on the server startup.

summary: - Server should diagnose non-standard innodb_log_block_size on 5.6 upgrade
+ Verify innodb_log_block_size mismatch diagnostics
tags: added: xtradb
Revision history for this message
Alexey Kopytov (akopytov) wrote :

The "No valid checkpoint" error is thrown from recv_find_max_checkpoint() which is called before the log block size check in recv_recovery_from_checkpoint_start_func().

Revision history for this message
Roel Van de Paar (roel11) wrote :

Yes we need this, otherwise we end up with confusing crashes/asserts/corruptions like bug 1233529, bug 1233506

Revision history for this message
Roel Van de Paar (roel11) wrote :

@Laurynas, any chance to get this implemented? Thanks

Revision history for this message
Roel Van de Paar (roel11) wrote :

For RQG; one can check vardir1_x/log/bootstrap.log for "InnoDB: The log block size is set to x." - but startup/mysql_install_db/bootstrap works generally fine in RQG with innodb_log_block_size.

tags: added: i64171
summary: - Verify innodb_log_block_size mismatch diagnostics
+ innodb_log_block_size mismatch between log files and current
+ configuration is diagnosed as "No valid checkpoints found"
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :
Revision history for this message
Shahriyar Rzayev (rzayev-sehriyar) wrote :

Percona now uses JIRA for bug reports so this bug report is migrated to: https://jira.percona.com/browse/PS-1338

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.