|
36 | 36 | #include "Basics/WriteLocker.h"
|
37 | 37 | #include "Basics/application-exit.h"
|
38 | 38 | #include "Basics/build.h"
|
| 39 | +#include "Basics/exitcodes.h" |
39 | 40 | #include "Basics/files.h"
|
40 | 41 | #include "Basics/system-functions.h"
|
41 | 42 | #include "Cache/CacheManagerFeature.h"
|
@@ -871,6 +872,26 @@ void RocksDBEngine::start() {
|
871 | 872 | "re-import data";
|
872 | 873 | FATAL_ERROR_EXIT();
|
873 | 874 | }
|
| 875 | + |
| 876 | + // check if we have too many column families, namely some known ones |
| 877 | + // from future versions of ArangoDB |
| 878 | + if (existingColumnFamilies.size() > numberOfColumnFamilies) { |
| 879 | + for (auto const& it : existingColumnFamilies) { |
| 880 | + if (it == "ZkdIndex" || it == "ReplicatedLogs") { |
| 881 | + // introduced in 3.9 or 3.10 |
| 882 | + LOG_TOPIC("1bdd3", ERR, Logger::STARTUP) |
| 883 | + << "Unknown column family found in RocksDB database: " << it; |
| 884 | + } |
| 885 | + } |
| 886 | + |
| 887 | + LOG_TOPIC("c91a4", ERR, Logger::STARTUP) |
| 888 | + << "Database version check failed: " |
| 889 | + << "the database directory seems to be from a future ArangoDB version. " |
| 890 | + << "This is unsupported!"; |
| 891 | + // let's continue, because maybe the database starts anyway for some |
| 892 | + // magic reasons... |
| 893 | + // FATAL_ERROR_EXIT_CODE(TRI_EXIT_VERSION_CHECK_FAILED); |
| 894 | + } |
874 | 895 | }
|
875 | 896 | }
|
876 | 897 |
|
|
0 commit comments