diff --git a/src/raft/raft_server.cpp b/src/raft/raft_server.cpp
index 6c98c3a34..e8eb95227 100644
--- a/src/raft/raft_server.cpp
+++ b/src/raft/raft_server.cpp
@@ -982,6 +982,10 @@ void RaftServer::SnapshotThread() {
         VLOG(40) << "[LogCompaction] Creating snapshot.";
         bool status = durability::MakeSnapshot(*db_, *dba, durability_dir_,
                                                snapshot_filename);
+
+        // Raft lock must be released when destroying dba object.
+        dba = nullptr;
+
         lock.lock();
 
         if (status) {
@@ -1004,11 +1008,7 @@ void RaftServer::SnapshotThread() {
             disk_storage_.Delete(LogEntryKey(i));
           }
         }
-
-        lock.unlock();
-        // Raft lock must be released when destroying dba object.
-        dba = nullptr;
-      }
+     }
     }
 
     std::this_thread::sleep_for(kSnapshotPeriod);