Skip to content

CI: run the sanitizer gate and broaden major coverage (follow-up to #236) #243

Description

@ChronicallyJD

Gap

The two highest-value gates do not run in CI; they are local / honor-system:

  • The clang ASAN+UBSAN sanitizer gate (test/run_san.sh / build_san.sh) — the only gate that catches the non-faulting memory-safety class the five assert builds provably miss (it exists because of Fuzz the Parquet decoder, and fix the first defect it found (#214) #225) — runs nowhere in .github/workflows/ci.yml, and its build needs a hand-extracted clang ASAN PostgreSQL from a local tarball. Regressions of exactly that class can land green between manual runs.
  • The behaviour suites in CI run on PostgreSQL 17 only (Add a GitHub Actions CI workflow #236); 15/16/18 are build-only and 19 is absent. Any behaviour/WAL/AM-API divergence on the other majors is caught only when someone runs the local five-major matrix by hand.

This builds on #236 (the first CI), which deliberately scoped to build-across-majors + suites-on-one. This issue tracks closing the remaining gap.

Why this bears on a public release

"CI is green" should mean the memory-safety and cross-major behaviour classes are covered. Today it does not. For public confidence the sanitizer gate and broader major coverage need to run automatically, at least on a schedule if too heavy per-PR.

Suggested acceptance criteria

  • A CI job (possibly nightly, given cost) that builds the ASAN+UBSAN PostgreSQL and runs run_san.sh.
  • Extend suite coverage beyond PG17 (at least add 18; 15/16 as capacity allows). Make any silent SKIP (isolation, pyarrow) fail-loud so "green" cannot mask dropped coverage.

Found in a release-readiness review; follow-up to #236.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions