8000 Bench: correctness coverage for excluded failure-latency paths · Issue #843 · project-minigraf/minigraf · GitHub
[go: up one dir, main page]

Skip to content
< 8000 /div>

Bench: correctness coverage for excluded failure-latency paths #843

Closed

Description

@adityamukho

Follow-up of #776: X08 in the remaining exclusions and follow-ups table, finalized in #834.

Disposition: EXCLUDED individual failure latency.

Milestone: v3.next — Individual failure latency is a deliberate standing exclusion; correctness and durability contracts remain required.

Remaining scope recorded by the audit:

Invalid bounds/windows/binds, deliberate callback errors, corrupt-page rejection, v1–v6 refusal, heavy single-entry WAL replay and individual PRS/API/QRY codes belong to correctness testing. C08 measures a successful repair of known damage and C30 measures cross-chunk rollback; neither claims exhaustive failure timing.

C04/C06/C08/C30/C33/C37 delimit successful work and the narrow failure-related cases actually timed:

  • Invalid storage/value/ident size bounds: the v3 audit describes file strings up to 4,068 bytes and idents up to 1,024 bytes. Oversize rejection is a correctness path, not a latency series.
  • Invalid valid-time windows, write ordering/ambiguity and prepared binds, including API-019/API-011 and the applicable bind/API contracts.
  • Deliberate fallible predicate/aggregate callback errors (QRY-014), invalid query options, memory/rule exhaustion and individual PRS/API/QRY validation codes. Valid successful operations still pay validation cost.
  • Corrupt-page/tree rejection, failed-checkpoint retry refusal and refusing unsupported v1–v6 databases. Native v7 migration is a separate supported path.
  • Heavy million-fact or larger single-entry WAL replay remains correctness-only timing scope. The ordinary open/wal_replay/{1k,10k,100k} representatives use 100-fact statements and do not cover this shape.

C08 times checkpoint/storage_v3/verify/100k_history and successful rebuild_damaged_avet/100k_history: 100,150 stored/99,950 live facts, rebuild from a CRC-damaged current AVET root, copied per iteration. That is successful repair of known damage, not arbitrary corruption-rejection timing. C30's insert_file/chunked/statement_rollback/65537 reaches a late API-011 after the first default-size chunk and then permits a valid commit; it is not exhaustive failure timing.

Why outside the nightly shortlist: invalid inputs, deliberate errors, corruption and heavy recovery edge cases primarily require stable error/data/durability assertions. Their individual latency codes would add costly/noisy series without an established performance contract. X02 owns actual memory/exhaustion acceptance bounds; this issue does not waive them.

Acceptance criteria:

  • Map every listed exclusion to concrete correctness/recovery/fault test targets and exact error/data invariants at a pinned revision.
  • Verify coverage distinguishes invalid bounds/windows/binds, callback errors, corrupt pages, failed-handle retry, v1–v6 refusal and heavy single-entry WAL replay; report any missing tests separately.
  • Keep C08 successful repair and C30 cross-chunk rollback claims limited to their exact fixtures/operations and retain their result-integrity checks.
  • Publish the standing exclusion rationale; require a concrete performance/durability hypothesis before adding any dedicated failure-latency route.

Run heavy builds, enumeration, measurements and comparisons on idle hardware; retain reproducible evidence and clean temporary scratch afterward. This is benchmark/verification work aligned with PHILOSOPHY.md's reliability, portability and simplicity principles; any production change needs its own review.

Evidence: docs/bench-coverage-v3.md; validation run 41642356471. The validation run establishes only its recorded representative latency coverage; it does not complete this follow-up.

Activity

  1. added this to the v3.next milestone on Nov 4, 2026
  2. added
    documentationImprovements or additions to documentation
    performanceBenchmark performance regressions
    on Nov 4, 2026
  3. modified the milestones: v3.next, v3.0.0 on Nov 6, 2026
  4. added a commit that references this issue on Nov 6, 2026
  5. adityamukho commented on Nov 6, 2026

    @adityamukho
    CollaboratorAuthor

    Done in #866 (merged on v3 as b6da317). Report: 138 curated correctness tests in 35 cells at v3 a95e51f, each with the error-code and data invariants it checks. C08 and C30 claims are limited to their fixtures, and both keep their integrity checks. X08 stays excluded; a future failure-latency route needs a concrete performance or durability hypothesis.

    Missing tests, reported separately: heavy single-entry WAL replay through Minigraf::open (#865); the fixed 1,000-round recursion bound (already planned in #861).

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

    documentationImprovements or additions to documentationperformanceBenchmark performance regressions

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0