Delete with ExpectedVersion: seal is per-process, storage delete is not compare-and-delete, and an acknowledged cross-hub write returns a stale version
Maintainers usually reply within 1 day
A pull request for this has already been merged.
- #6974 by @rbuergi — merged
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp
- Domain
- databases, distributed-systems, documentation
Research direction
Start with Doc/DataMesh/CRUD.md, which currently points to #6673 for these gaps, and with the cross-hub path GetMeshNodeStream(path).Update(...), where the returned version can differ from the owner's committed version. The seal and storage-delete gaps need a design decision, such as a cross-process seal or a DELETE ... WHERE version = $expected, and no cross-process race has been reproduced yet. Done means the acknowledged write returns the owner's version or the doc names the read to use, and the doc links to this issue.
Written by the indexing model from the issue text.
Description
Split out of #6673, whose own defect is verified fixed on memex.meshweaver.cloud (commit 22eb9e448915, fix #6676): a delete naming a stale ExpectedVersion is refused with Conflict (15 of 15), the current version deletes (5 of 5). Doc/DataMesh/CRUD.md still points at #6673 for three remaining gaps:
- The delete seal is held only in the deleting process — another process's writer is not stopped by it.
- The final storage delete is not a compare-and-delete — the version check happens at the owner, then the row is removed unconditionally.
- The version returned by a cross-hub
GetMeshNodeStream(path).Update(...)is not the owner's committed version — observed: the returned node carried v1 while the owner held v2 — so the doc's advice "use the version from an acknowledged write as ExpectedVersion" yields a falseConflict(no data lost, but the advice is wrong).
Not established: whether (1)/(2) are reachable in production today (no cross-process race was run); (3) was measured once via the MCP path.
Expected: a cross-process seal or a storage-level conditional delete (DELETE … WHERE version = $expected); the acknowledged-write path returns the owner's committed version, or the doc names the read to use. Update Doc/DataMesh/CRUD.md to point here instead of #6673.
- Dominant language
- C#
- Stars
- 12
- Forks
- 5
- Avg merge
- 5h 56m
- Merged PRs (30d)
- 971
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Systemorph/MeshWeaver
-
bug sev:H
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Systemorph/MeshWeaver#6989 · 2 comments ·
Maintainers usually reply within 1 day
-
area:hosting area:storage bug sev:H
Difficulty 5/5 Over a week Newbie friendliness 25/100
Systemorph/MeshWeaver#6983 · 3 comments ·
Maintainers usually reply within 1 day
-
bug sev:L
Difficulty 4/5 3-5 days Newbie friendliness 28/100
Systemorph/MeshWeaver#6930 · 6 comments ·
Maintainers usually reply within 1 day
-
bug cli-publish-failure feature:release-promotion sev:M
Difficulty 3/5 1-3 hours Newbie friendliness 12/100
Systemorph/MeshWeaver#6845 ·
Maintainers usually reply within 1 day
-
bug feature:bundle-bake sev:H
Difficulty 4/5 3-5 days Newbie friendliness 20/100
Systemorph/MeshWeaver#6825 · 2 comments ·
Maintainers usually reply within 1 day
All issues in Systemorph/MeshWeaver
Similar issues
-
area-TableView bug needs-triage team-Controls
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
microsoft/microsoft-ui-xaml#12351 · 1 comment ·
Maintainers usually reply within 2 days
-
AudioClient and ImageClient file path overloads send the full local path as the multipart file namePossibly taken @sebxt claimed this today. Openarea: audio area: images feature-request
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
openai/openai-dotnet#1453 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
Maintainers usually reply within 1 day
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
elsa-workflows/elsa-foundation#3130 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100