summaryrefslogtreecommitdiff
path: root/innobase/srv
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2004-12-29 17:06:26 +0200
committerheikki@hundin.mysql.fi <>2004-12-29 17:06:26 +0200
commit2aa98f89aaaad9b386c1712a03efa2ec9e9e93b4 (patch)
tree6fc18051681f82527defbb12245528642794574e /innobase/srv
parente8e6d0577fecd115b763ba68ac52b609ec17d6a2 (diff)
downloadmariadb-git-2aa98f89aaaad9b386c1712a03efa2ec9e9e93b4.tar.gz
srv0start.c:
Print a more descriptive error and refuse to start InnoDB if the size of ibdata files is smaller than what is stored in the tablespace header; innodb_force_recovery will override this
Diffstat (limited to 'innobase/srv')
-rw-r--r--innobase/srv/srv0start.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/innobase/srv/srv0start.c b/innobase/srv/srv0start.c
index c91db1f0dcc..7a61a885ef9 100644
--- a/innobase/srv/srv0start.c
+++ b/innobase/srv/srv0start.c
@@ -1528,6 +1528,21 @@ NetWare. */
"InnoDB: the sum of data file sizes is %lu pages\n",
(ulong) tablespace_size_in_header,
(ulong) sum_of_data_file_sizes);
+
+ if (srv_force_recovery == 0
+ && sum_of_data_file_sizes < tablespace_size_in_header) {
+ /* This is a fatal error, the tail of a tablespace is
+ missing */
+
+ fprintf(stderr,
+"InnoDB: Cannot start InnoDB. The tail of the system tablespace is\n"
+"InnoDB: missing. Have you edited innodb_data_file_path in my.cnf in an\n"
+"InnoDB: inappropriate way, removing ibdata files from there?\n"
+"InnoDB: You can set innodb_force_recovery=1 in my.cnf to force\n"
+"InnoDB: a startup if you are trying to recover a badly corrupt database.\n");
+
+ return(DB_ERROR);
+ }
}
if (srv_auto_extend_last_data_file
@@ -1538,6 +1553,18 @@ NetWare. */
"InnoDB: the sum of data file sizes is only %lu pages\n",
(ulong) tablespace_size_in_header,
(ulong) sum_of_data_file_sizes);
+
+ if (srv_force_recovery == 0) {
+
+ fprintf(stderr,
+"InnoDB: Cannot start InnoDB. The tail of the system tablespace is\n"
+"InnoDB: missing. Have you edited innodb_data_file_path in my.cnf in an\n"
+"InnoDB: inappropriate way, removing ibdata files from there?\n"
+"InnoDB: You can set innodb_force_recovery=1 in my.cnf to force\n"
+"InnoDB: a startup if you are trying to recover a badly corrupt database.\n");
+
+ return(DB_ERROR);
+ }
}
/* Check that os_fast_mutexes work as expected */