Skip to content

flaky: concurrent_branch_ops_morphological_matrix cell i (branch_delete × change on distinct branches) #187

Description

@aaltshuler

Cell i:branch_delete×change:distinct-branch (crates/omnigraph-server/tests/server.rs ~4197) intermittently fails in CI's Test Workspace job:

assertion `left == right` failed: [i:branch_delete×change:distinct-branch] change
  left: 4xx (the /change response)
 right: 200

The cell asserts that a /change on main succeeds while a different branch is concurrently deleted ("both should succeed"). Under contention the change's publish appears to hit a manifest CAS conflict caused by the unrelated branch delete and surfaces a non-200 instead of retrying.

Occurrences (identical signature, both on PRs not touching the engine/server concurrency paths):

Two candidate resolutions (one of them is right, the test is currently asserting whichever we want the contract to be):

  1. The /change path should absorb/rebase manifest CAS conflicts caused by unrelated-branch deletes (the non-strict write queue already rebases other contention) — then the test is correct and this is an engine bug.
  2. Concurrent unrelated-branch deletes legitimately surface a retryable conflict — then the cell's "both succeed" expectation should accept the documented conflict semantics.

Per invariants.md, observable behavior is contract (Hyrum); whichever way this lands, the matrix cell should pin it deterministically (failpoint-sequenced rather than timing-raced) so the answer stops being probabilistic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions