diff --git a/storage/innobase/srv/srv0start.cc b/storage/innobase/srv/srv0start.cc
|
index 8e291352d55..3f81f33cee1 100644
|
--- a/storage/innobase/srv/srv0start.cc
|
+++ b/storage/innobase/srv/srv0start.cc
|
@@ -1401,17 +1401,48 @@ dberr_t srv_start(bool create_new_db)
|
uint32_t(sum_of_new_sizes), &mtr)
|
== DB_SUCCESS);
|
|
+#if 1
|
ulint ibuf_root = btr_create(
|
DICT_CLUSTERED | DICT_IBUF, fil_system.sys_space,
|
DICT_IBUF_ID_MIN, nullptr, &mtr, &err);
|
+#else
|
+ /* Allocate dummy change buffer pages for backward
|
+ compatibility and to prevent a downgrade. */
|
+ if (err != DB_SUCCESS) {
|
+ } else if (buf_block_t *b =
|
+ fseg_create(fil_system.sys_space, PAGE_DATA, &mtr,
|
+ &err)) {
|
+ ut_ad(b->page.id()
|
+ == page_id_t(0, FSP_IBUF_HEADER_PAGE_NO));
|
+ b = fseg_alloc_free_page_general(
|
+ b->page.frame + PAGE_DATA,
|
+ FSP_IBUF_TREE_ROOT_PAGE_NO, FSP_UP, false,
|
+ &mtr, &mtr, &err);
|
+ if (b) {
|
+ ut_ad(b->page.id() == page_id_t
|
+ (0, FSP_IBUF_TREE_ROOT_PAGE_NO));
|
+ mtr.set_modified(*b);
|
+ fsp_init_file_page(fil_system.sys_space, b,
|
+ &mtr);
|
+ } else {
|
+ ut_ad(err != DB_SUCCESS);
|
+ }
|
+ }
|
+#endif
|
|
mtr_commit(&mtr);
|
|
+#if 1
|
if (ibuf_root == FIL_NULL) {
|
return srv_init_abort(err);
|
}
|
|
ut_ad(ibuf_root == IBUF_TREE_ROOT_PAGE_NO);
|
+#else
|
+ if (err != DB_SUCCESS) {
|
+ return srv_init_abort(err);
|
+ }
|
+#endif
|
|
/* To maintain backward compatibility we create only
|
the first rollback segment before the double write buffer.
|