summaryrefslogtreecommitdiff
path: root/storage/rocksdb/rdb_datadic.cc
diff options
context:
space:
mode:
authorSergei Petrunia <sergey@mariadb.com>2022-01-20 22:52:41 +0300
committerSergei Petrunia <sergey@mariadb.com>2022-01-21 09:31:16 +0300
commitfa7a67ff499582fad6e4f1ff8198689325dee0dd (patch)
tree41792ac9e2ac607d260dd5e7f066ca7fa6d4ec25 /storage/rocksdb/rdb_datadic.cc
parentad88c428c50e86cd78da2a9ecd027add2f9d6ff9 (diff)
downloadmariadb-git-bb-10.2-psergey.tar.gz
MDEV-27149: Add rocksdb_ignore_datadic_errorsbb-10.2-psergey
Add a --rocksdb_ignore_datadic_errors plugin option for MyRocks. The default is 0, and this means MyRocks will call abort() if it detects a DDL mismatch. Setting rocksdb_ignore_datadic_errors=1 makes MyRocks to try to ignore the errors and allow to start the server for repairs.
Diffstat (limited to 'storage/rocksdb/rdb_datadic.cc')
-rw-r--r--storage/rocksdb/rdb_datadic.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/storage/rocksdb/rdb_datadic.cc b/storage/rocksdb/rdb_datadic.cc
index 31bc40b1df9..45bb665654c 100644
--- a/storage/rocksdb/rdb_datadic.cc
+++ b/storage/rocksdb/rdb_datadic.cc
@@ -5240,6 +5240,12 @@ void Rdb_dict_manager::log_start_drop_index(GL_INDEX_ID gl_index_id,
"from index id (%u,%u). MyRocks data dictionary may "
"get corrupted.",
gl_index_id.cf_id, gl_index_id.index_id);
+ if (rocksdb_ignore_datadic_errors)
+ {
+ sql_print_error("RocksDB: rocksdb_ignore_datadic_errors=1, "
+ "trying to continue");
+ return;
+ }
abort();
}
}