diff --git a/core/mvcc/persistent_storage/logical_log.rs b/core/mvcc/persistent_storage/logical_log.rs index b64cb5acc..9c436ecb0 100644 --- a/core/mvcc/persistent_storage/logical_log.rs +++ b/core/mvcc/persistent_storage/logical_log.rs @@ -260,10 +260,10 @@ impl StreamingLogicalLogReader { pub fn read_header(&mut self) -> Result { let header_buf = Arc::new(Buffer::new_temporary(LOG_HEADER_MAX_SIZE)); - let header = Arc::new(RefCell::new(LogHeader::default())); + let header = Arc::new(RwLock::new(LogHeader::default())); let completion: Box = Box::new(move |res| { let header = header.clone(); - let mut header = header.borrow_mut(); + let mut header = header.write().unwrap(); let Ok((buf, bytes_read)) = res else { tracing::error!("couldn't ready log err={:?}", res,); return;