add catch in WAL-sync thread
diff --git a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestartIT.java b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestartIT.java
index fad08f0..4af52b7 100644
--- a/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestartIT.java
+++ b/integration-test/src/test/java/org/apache/iotdb/db/it/IoTDBRestartIT.java
@@ -55,7 +55,7 @@
 
   @Before
   public void setUp() throws Exception {
-    EnvFactory.getEnv().getConfig().getCommonConfig().setWalMode("SYNC");
+    // EnvFactory.getEnv().getConfig().getCommonConfig().setWalMode("SYNC");
     EnvFactory.getEnv()
         .getConfig()
         .getCommonConfig()
@@ -66,7 +66,7 @@
   @After
   public void tearDown() throws Exception {
     EnvFactory.getEnv().cleanClusterEnvironment();
-    EnvFactory.getEnv().getConfig().getCommonConfig().setWalMode("ASYNC");
+    // EnvFactory.getEnv().getConfig().getCommonConfig().setWalMode("ASYNC");
     EnvFactory.getEnv()
         .getConfig()
         .getCommonConfig()
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBuffer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBuffer.java
index cfe2722..80a0b96 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBuffer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/wal/buffer/WALBuffer.java
@@ -531,8 +531,7 @@
       this.info = info == null ? new SerializeInfo() : info;
     }
 
-    @Override
-    public void run() {
+    private void runInternal() {
       final long startTime = System.nanoTime();
 
       makeMemTableCheckpoints();
@@ -618,6 +617,15 @@
       WRITING_METRICS.recordSyncWALBufferCost(System.nanoTime() - startTime, forceFlag);
     }
 
+    @Override
+    public void run() {
+      try {
+        runInternal();
+      } catch (Exception e) {
+        logger.warn("Unexpected exception in sync wal buffer task.", e);
+      }
+    }
+
     private void makeMemTableCheckpoints() {
       if (info.checkpoints.isEmpty()) {
         return;
@@ -709,6 +717,7 @@
     MmapUtil.clean(workingBuffer);
     MmapUtil.clean(syncingBuffer);
     MmapUtil.clean(compressedByteBuffer);
+    logger.info("WAL Buffer {} is closed", this);
   }
 
   private void shutdownThread(ExecutorService thread, ThreadName threadName) {