Skip to content

[Feature] Improve coverage reliability and cover reader and commit edge cases #506

Closed

Description

@lucasfang

Search before asking

Motivation

The coverage report exposes untested reader and commit paths: empty parent paths, default prefetch ranges, stream forwarding and I/O metrics, discarded batches, deferred read ranges, workloop errors, recovered commits, schema-dependent statistics, and row-ID conflict checks.

Coverage collection also needs to handle concurrent execution reliably. Non-atomic gcov updates can lose counter increments when reader threads execute the same code. The coverage script currently omits several optional components from its build configuration.

Solution

  • Add 12 focused regression tests for local files, prefetch readers, snapshot commits, and conflict detection.
  • Enable atomic gcov counter updates for C and C++ coverage builds and remove that flag from bundled third-party dependencies.
  • Enable Jindo, OSS, S3, Lumina, Lucene, full-text, and REST components alongside the formats already enabled by the coverage script.

Anything else?

Implementation: #505. No public API, storage format, or protocol changes.

Focused suites passed 212 tests with 2 existing skips. Coverage flags, concurrent counter updates, third-party flag isolation, and the report script's command flow were checked separately. The full coverage report has not been regenerated: rebuilding the shared configuration is blocked by its stable Rust 1.67.1 toolchain being older than Vortex dependency requirements.

Are you willing to submit a PR?

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions