diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java index 86ed91d3c08dcc..c0d5d74154faf0 100644 --- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java +++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java @@ -2488,6 +2488,14 @@ public class Config extends ConfigBase { options = {"default", "ranger-doris"}) public static String access_controller_type = "default"; + /* https://forums.oracle.com/ords/apexds/post/je-log-checksumexception-2812 + when meeting disk damage or other reason described in the oracle forums + and fe cannot start due to `com.sleepycat.je.log.ChecksumException`, we + add a param `ignore_bdbje_log_checksum_read` to ignore the exception, but + there is no guarantee of correctness for bdbje kv data + */ + @ConfField + public static boolean ignore_bdbje_log_checksum_read = false; //========================================================================== // begin of cloud config //========================================================================== diff --git a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java index f973ed82597da2..f80f5e7dd20f15 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java +++ b/fe/fe-core/src/main/java/org/apache/doris/journal/bdbje/BDBEnvironment.java @@ -143,6 +143,11 @@ public void setup(File envHome, String selfNodeName, String selfNodeHostPort, environmentConfig.setConfigParam(EnvironmentConfig.FREE_DISK, String.valueOf(Config.bdbje_free_disk_bytes)); + if (Config.ignore_bdbje_log_checksum_read) { + environmentConfig.setConfigParam(EnvironmentConfig.LOG_CHECKSUM_READ, "false"); + LOG.warn("set EnvironmentConfig.LOG_CHECKSUM_READ false"); + } + if (BDBJE_LOG_LEVEL.contains(Config.bdbje_file_logging_level)) { java.util.logging.Logger parent = java.util.logging.Logger.getLogger("com.sleepycat.je"); parent.setLevel(Level.parse(Config.bdbje_file_logging_level));