summaryrefslogtreecommitdiff
path: root/storage/innobase/srv/srv0start.c
diff options
context:
space:
mode:
authorkevin.lewis@oracle.com <>2012-02-16 12:13:08 -0600
committerkevin.lewis@oracle.com <>2012-02-16 12:13:08 -0600
commit0093911883798fd6e79caedb062a3f482bd5331f (patch)
tree2b74e800ee6d10b21ac13387c10f73636a534ad8 /storage/innobase/srv/srv0start.c
parentf39456a0be3bdd539eacbcc00fd1c5886def5c90 (diff)
downloadmariadb-git-0093911883798fd6e79caedb062a3f482bd5331f.tar.gz
Bug#64160, Oracle Bug#13698765
The problem was introduced in 5.5.20 by Bug 13116225. It tried to protect against downgrading from a version 5.6.4 database that was created with a page size other than 16k. Version 5.6.4 supports page sizes 4k and 8k and stamps that page size into the header page of each tablespace file. Version 5.5.20 attempts to read that page size in the file header. But it turns out that only the first system tablespace file has a reliable flags field in the header. So only ibdata1 can be or needs to be tested for another page size. Extra system tablespace files like ibdata2, ibdata3, etc do not and should not be tested since the flags field is unreliable.
Diffstat (limited to 'storage/innobase/srv/srv0start.c')
-rw-r--r--storage/innobase/srv/srv0start.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/storage/innobase/srv/srv0start.c b/storage/innobase/srv/srv0start.c
index edc655e93b9..343e41fe376 100644
--- a/storage/innobase/srv/srv0start.c
+++ b/storage/innobase/srv/srv0start.c
@@ -922,8 +922,9 @@ skip_size_check:
#endif /* UNIV_LOG_ARCHIVE */
min_flushed_lsn, max_flushed_lsn);
- if (UNIV_PAGE_SIZE
- != fsp_flags_get_page_size(flags)) {
+ if (!one_opened
+ && UNIV_PAGE_SIZE
+ != fsp_flags_get_page_size(flags)) {
ut_print_timestamp(stderr);
fprintf(stderr,