From 0ff1b3cd42aad654846a58621e16f6d7d111d793 Mon Sep 17 00:00:00 2001 From: SteNicholas Date: Fri, 8 Mar 2024 14:46:08 +0800 Subject: [PATCH] [CELEBORN-1315] Manually close the RocksDB/LevelDB instance when checkVersion throw Exception --- .../service/deploy/worker/shuffledb/LevelDBProvider.java | 7 ++++++- .../service/deploy/worker/shuffledb/RocksDBProvider.java | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/LevelDBProvider.java b/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/LevelDBProvider.java index 27734dca5b7..7bac204157a 100644 --- a/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/LevelDBProvider.java +++ b/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/LevelDBProvider.java @@ -83,7 +83,12 @@ public static org.iq80.leveldb.DB initLevelDB(File dbFile, StoreVersion version) } } // if there is a version mismatch, we throw an exception, which means the service is unusable - checkVersion(tmpDb, version); + try { + checkVersion(tmpDb, version); + } catch (IOException ioe) { + tmpDb.close(); + throw ioe; + } } return tmpDb; } diff --git a/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/RocksDBProvider.java b/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/RocksDBProvider.java index 13d65a86e3e..4229008c05a 100644 --- a/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/RocksDBProvider.java +++ b/worker/src/main/java/org/apache/celeborn/service/deploy/worker/shuffledb/RocksDBProvider.java @@ -104,7 +104,11 @@ public static org.rocksdb.RocksDB initRockDB(File dbFile, StoreVersion version) // is unusable checkVersion(tmpDb, version); } catch (RocksDBException e) { + tmpDb.close(); throw new IOException(e.getMessage(), e); + } catch (IOException ioe) { + tmpDb.close(); + throw ioe; } } return tmpDb;