Skip to content

Make concurrent row publication sound in the default 1.0 configuration #40

Description

@pathscale

The repository documentation for versioned-row-publication states that the current default fast path can deserialize archived bytes while a writer mutates them, which is a Rust data race, and that physical-link reuse can let a reader resolve a different row. The sound publication implementation is still a feature-gated prototype and is disabled by default. A safe public Rust API cannot expose undefined behavior as the default, even if the faster mode is documented. Before 1.0, concurrent generated reads and mutations must be sound in the default build. Either make the safe publication protocol the default, replace the original path with another sound protocol, or restrict mutation/read concurrency structurally so the race is impossible. Verification must cover insert, update, delete, vacuum, reload, point reads, and partially consumed range iterators across every supported backend. Related: #37 tracks lock-free insert versus locked mutation behavior; this issue tracks the broader memory-safety and link-reuse contract.

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't workingrelease-blockerMust be resolved before the 1.0.0 release

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions