From f305d270d3334bce02ad29d8641fcbea1d0290d3 Mon Sep 17 00:00:00 2001 From: BurtonQin Date: Sun, 7 Jun 2020 19:27:56 +0800 Subject: [PATCH] log: fix a deadlock caused by conflicting lock order --- src/log.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/log.rs b/src/log.rs index d0017420..b6a8bae3 100644 --- a/src/log.rs +++ b/src/log.rs @@ -452,9 +452,9 @@ impl Log { pub fn end_record(&self, log: LogChange) -> Result { assert!(log.record_id + 1 == self.next_record_id.load(Ordering::Relaxed)); let record_id = log.record_id; + let mut overlays = self.overlays.write(); let mut appending = self.appending.write(); let (index, values, bytes) = log.to_file(&mut appending.file)?; - let mut overlays = self.overlays.write(); let mut total_index = 0; for (id, overlay) in index.into_iter() { total_index += overlay.map.len();