Skip to content

[Epic] P6 — Conformance Matrix + Chaos/Crash-Recovery Suite (v0.9) #168

Description

@habibtalib

Epic — v0.9 production-hardening, phase P6: Conformance Matrix + Chaos/Crash-Recovery Suite

Goal: a green, gating CI matrix and fault-injection tests that would have caught every finding in the v1.0 audit — the production-readiness certificate.

Generic-client correctness (High)

  • EdgeId::seq always 0 → parallel edges between the same (src,dst,label) silently collide (second write overwrites). nodedb-types/src/id/edge.rs:64-93.
  • Binary parameter format silently corrupts common types — only NUMERIC/TIMESTAMP/TIMESTAMPTZ rejected; binary INT4/UUID/DATE passed to str::from_utf8. pgwire/handler/prepared/execute.rs:204-236.
  • information_schema and pg_proc/pg_constraint absent → ORM introspection (SQLAlchemy, Prisma) fails. pgwire/pg_catalog/dispatch.rs:60-71.
  • Cursor disk-spill claimed in docs but only truncates a Vec<String> at 100k rows (silent loss); SCROLL cursors pre-materialize → OOM. pgwire/session/state.rs:33-41, cursor_spill.rs.

Conformance matrix (gating in CI)

  • pg driver compatibility (psql, tokio-postgres binary mode, an ORM introspection pass over information_schema).
  • Crash-recovery (P1 failpoints), cluster partition/restart (P2 tests), quota enforcement (P4).

Chaos suite

  • node kill mid-query (scatter-gather + cluster), disk-full injection, slow-core checkpoint, mid-election crash — each an automated test.

Other

  • server_version/version() banner non-PostgreSQL-form; server_version_num advertised but unset → breaks driver version-sniffing. factory.rs:158, session/params.rs:115.
  • Document remaining accepted limitations in a "v1 known limitations" doc.

Tracked in .planning/v1-production-readiness/AUDIT.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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