HarperFast / HarperFast/fulltext

Build native fault-injection and crash-recovery suites

Open
#18 0 comments 0 reactions 1 assignee Claimed by @kylebernhardy View on GitHub
area:native tests
Dominant language
Rust
Stars
0
Forks
0
Avg merge
3h 53m
Merged PRs (30d)
18

Description

## Outcome

Prove native wrapper publication, lifecycle, recovery and real Harper integration under failure.

## Acceptance criteria

- Test native create/reopen/locking, packed inputs, repeated upsert/delete, queries, close, and malformed/incompatible/corrupt state.
- Verify atomic index/opaque checkpoint publication, payload readback, plain commit interactions, failed reload, and ambiguous publication recovery.
- Inject failures before apply, after apply, after commit and before reload; check complete ID sets through both delete/recreate orders, not counts alone.
- Exercise real worker handoff/loss, cross-worker reader refresh, path aliases, bounded queues, multi-index saturation, and native quiescence before cleanup.
- Qualify POSIX and Windows file/mmap lifetime and cleanup retry after restart.
- Exercise actual Harper replay, source restore, log gaps, eviction, replicated writes, initial replica copy and rebuild/readiness in a reproducible paired CI fixture.
- Use sanitizers/property tests and supported-filesystem durability tests where appropriate; distinguish process crash from power loss.
- Retire custom KV Directory/transport/reclamation tests as release gates; upstream Tantivy supplies Directory behavior.

- Keep test-only wrapped native Directory injection for commit/reload failure branches after removing production KV code.

## Design

[Native Tantivy storage and Harper derived indexes](https://github.com/HarperFast/fulltext/blob/codex/native-storage-design/docs/native-storage-integration.md). Native Tantivy files are the only delivery target for standalone use and Harper. Proposed APIs and integration gates are not claims of completed implementation.

Comment generated by kAIle (GPT-6)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.