make end_write_txn/end_read_txn function non-failing

This commit is contained in:
Nikita Sivukhin
2025-07-22 16:33:22 +04:00
parent cb42102a6e
commit bc09ea6e98
2 changed files with 11 additions and 17 deletions

View File

@@ -772,16 +772,16 @@ impl Pager {
) -> Result<IOResult<PagerCommitResult>> {
tracing::trace!("end_tx(rollback={})", rollback);
if rollback {
self.wal.borrow().end_write_tx()?;
self.wal.borrow().end_read_tx()?;
self.wal.borrow().end_write_tx();
self.wal.borrow().end_read_tx();
return Ok(IOResult::Done(PagerCommitResult::Rollback));
}
let commit_status = self.commit_dirty_pages(wal_checkpoint_disabled)?;
match commit_status {
IOResult::IO => Ok(IOResult::IO),
IOResult::Done(_) => {
self.wal.borrow().end_write_tx()?;
self.wal.borrow().end_read_tx()?;
self.wal.borrow().end_write_tx();
self.wal.borrow().end_read_tx();
if schema_did_change {
let schema = connection.schema.borrow().clone();
@@ -798,7 +798,7 @@ impl Pager {
#[instrument(skip_all, level = Level::DEBUG)]
pub fn end_read_tx(&self) -> Result<()> {
self.wal.borrow().end_read_tx()?;
self.wal.borrow().end_read_tx();
Ok(())
}

View File

@@ -203,10 +203,10 @@ pub trait Wal {
fn begin_write_tx(&mut self) -> Result<LimboResult>;
/// End a read transaction.
fn end_read_tx(&self) -> Result<LimboResult>;
fn end_read_tx(&self);
/// End a write transaction.
fn end_write_tx(&self) -> Result<LimboResult>;
fn end_write_tx(&self);
/// Find the latest frame containing a page.
fn find_frame(&self, page_id: u64) -> Result<Option<u64>>;
@@ -258,17 +258,13 @@ impl Wal for DummyWAL {
Ok(LimboResult::Ok)
}
fn end_read_tx(&self) -> Result<LimboResult> {
Ok(LimboResult::Ok)
}
fn end_read_tx(&self) {}
fn begin_write_tx(&mut self) -> Result<LimboResult> {
Ok(LimboResult::Ok)
}
fn end_write_tx(&self) -> Result<LimboResult> {
Ok(LimboResult::Ok)
}
fn end_write_tx(&self) {}
fn find_frame(&self, _page_id: u64) -> Result<Option<u64>> {
Ok(None)
@@ -542,11 +538,10 @@ impl Wal for WalFile {
/// End a read transaction.
#[inline(always)]
#[instrument(skip_all, level = Level::DEBUG)]
fn end_read_tx(&self) -> Result<LimboResult> {
fn end_read_tx(&self) {
tracing::debug!("end_read_tx(lock={})", self.max_frame_read_lock_index);
let read_lock = &mut self.get_shared().read_locks[self.max_frame_read_lock_index];
read_lock.unlock();
Ok(LimboResult::Ok)
}
/// Begin a write transaction
@@ -571,10 +566,9 @@ impl Wal for WalFile {
/// End a write transaction
#[instrument(skip_all, level = Level::DEBUG)]
fn end_write_tx(&self) -> Result<LimboResult> {
fn end_write_tx(&self) {
tracing::debug!("end_write_txn");
self.get_shared().write_lock.unlock();
Ok(LimboResult::Ok)
}
/// Find the latest frame containing a page.