Skip to content

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

@aaltshuler

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions