Skip to content

investigate: unexpected checkpoint lock contention in isolated revert test #275

Description

@DecisionNerd

Release disposition

WriterBusy is the documented nonblocking contention/backpressure result. It means this mutation could not immediately obtain exclusive ownership of the relevant writer or checkpoint lock, so the operation failed visibly before completing the requested mutation.

This issue is not a v0.5.0 release blocker. The observed intermittent test failure did not demonstrate data corruption, loss of an acknowledged write, partial mutation, silent success, or a violation of the public WriterBusy contract. Issue #275 remains open to identify the unexpected lock owner, lock lifetime, test interaction, or environmental condition.

Observation

The exact-SHA Rust Non-Cypher Surface Gate failed on 99ae08bae2496a5aff4b1e5ecf10f64cdfd0d5fd in run 30682040773.

repository::tests::repository_snapshot_checkpoint_revert_reopens_and_replays failed at crates/graphforge-api/src/repository.rs:3121 when revert_to_checkpoint returned:

Project { code: WriterBusy, message: "checkpoint mutation could not acquire checkpoints.lock" }

The same source passed:

  • the exact focused test 20/20 times locally with one test thread;
  • the full graphforge-api library suite locally in parallel: 459 passed, 0 failed;
  • prior ordinary exact-head CI.

Investigation outcomes

  • A deterministic regression test reproduces unexpected WriterBusy from checkpoint/revert under the relevant same-process or cross-process schedule, or deterministic evidence rules out the suspected schedule.
  • The lock owner/lifetime and failure mechanism are identified with deterministic evidence, if the condition can be reproduced.
  • Any fix preserves the public WriterBusy contention/backpressure contract and does not conceal failures with retries, sleeps, skips, or test-suite serialization.
  • Focused checkpoint/revert tests and the full graphforge-api --lib --no-fail-fast suite pass for any code change.

Non-goals

  • Treating WriterBusy itself as a defect or weakening its nonblocking behavior.
  • Publication, tags, GitHub Release creation, or registry writes.
  • Unrelated checkpoint API changes.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions