diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2017-01-25 15:11:46 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2017-01-26 13:58:58 +0200 |
commit | 49fe9bad01cbd7f66efd52171c4234636ba61276 (patch) | |
tree | bfefbb31807fd8e13b17f4535c4065808ca98900 /storage/innobase | |
parent | 8725b35d897cfad6e55217ae80e7c387e8dfe8da (diff) | |
download | mariadb-git-49fe9bad01cbd7f66efd52171c4234636ba61276.tar.gz |
MDEV-11814 Refuse innodb_read_only startup if crash recovery is needed
recv_scan_log_recs(): Remember if redo log apply is needed,
even if starting up in innodb_read_only mode.
recv_recovery_from_checkpoint_start_func(): Refuse
innodb_read_only startup if redo log apply is needed.
Diffstat (limited to 'storage/innobase')
-rw-r--r-- | storage/innobase/log/log0recv.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index aed94d00834..e52448c87f6 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -2806,11 +2806,10 @@ recv_scan_log_recs( recv_init_crash_recovery(); } else { - - ib_logf(IB_LOG_LEVEL_WARN, - "Recovery skipped, " - "--innodb-read-only set!"); - + ib_logf(IB_LOG_LEVEL_ERROR, + "innodb_read_only prevents" + " crash recovery"); + recv_needed_recovery = TRUE; return(TRUE); } } @@ -3227,6 +3226,11 @@ recv_recovery_from_checkpoint_start_func( /* Done with startup scan. Clear the flag. */ recv_log_scan_is_startup_type = FALSE; + + if (srv_read_only_mode && recv_needed_recovery) { + return(DB_READ_ONLY); + } + if (TYPE_CHECKPOINT) { /* NOTE: we always do a 'recovery' at startup, but only if there is something wrong we will print a message to the |