From dc0245d758491a3becd6071d0acbc007debfadf3 Mon Sep 17 00:00:00 2001 From: Pere Diaz Bou Date: Wed, 1 Oct 2025 14:25:22 +0200 Subject: [PATCH] core/mvcc/logical-log: fail in read_more_data if couldn't read enough --- core/mvcc/persistent_storage/logical_log.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/mvcc/persistent_storage/logical_log.rs b/core/mvcc/persistent_storage/logical_log.rs index 6027a8697..f121d635a 100644 --- a/core/mvcc/persistent_storage/logical_log.rs +++ b/core/mvcc/persistent_storage/logical_log.rs @@ -419,17 +419,21 @@ impl StreamingLogicalLogReader { if bytes_can_read >= need { return Ok(()); } - let to_read = 4096; + let to_read = 4096.max(need); let to_read = to_read.min(self.file_size - self.offset); let header_buf = Arc::new(Buffer::new_temporary(to_read)); let buffer = self.buffer.clone(); let completion: Box = Box::new(move |res| { let buffer = buffer.clone(); let mut buffer = buffer.write().unwrap(); - let Ok((buf, _bytes_read)) = res else { + let Ok((buf, bytes_read)) = res else { tracing::trace!("couldn't ready log err={:?}", res,); - return; + return ; }; + turso_assert!( + bytes_read as usize >= need, + "couldn't read enough data. Requested={need} got={bytes_read}" + ); let buf = buf.as_slice(); buffer.extend_from_slice(buf); });