diff --git a/common/network-common/src/main/java/org/apache/spark/network/util/LevelDBProvider.java b/common/network-common/src/main/java/org/apache/spark/network/util/LevelDBProvider.java index b27e3beb77ef9..aa8be0c663bc2 100644 --- a/common/network-common/src/main/java/org/apache/spark/network/util/LevelDBProvider.java +++ b/common/network-common/src/main/java/org/apache/spark/network/util/LevelDBProvider.java @@ -80,7 +80,12 @@ public static DB initLevelDB(File dbFile, StoreVersion version, ObjectMapper map } } // if there is a version mismatch, we throw an exception, which means the service is unusable - checkVersion(tmpDb, version, mapper); + try { + checkVersion(tmpDb, version, mapper); + } catch (IOException ioe) { + tmpDb.close(); + throw ioe; + } } return tmpDb; } diff --git a/common/network-common/src/main/java/org/apache/spark/network/util/RocksDBProvider.java b/common/network-common/src/main/java/org/apache/spark/network/util/RocksDBProvider.java index f1f702c44245a..f3b7b48355a06 100644 --- a/common/network-common/src/main/java/org/apache/spark/network/util/RocksDBProvider.java +++ b/common/network-common/src/main/java/org/apache/spark/network/util/RocksDBProvider.java @@ -100,7 +100,11 @@ public static RocksDB initRockDB(File dbFile, StoreVersion version, ObjectMapper // is unusable checkVersion(tmpDb, version, mapper); } catch (RocksDBException e) { + tmpDb.close(); throw new IOException(e.getMessage(), e); + } catch (IOException ioe) { + tmpDb.close(); + throw ioe; } } return tmpDb;