Skip to content

ct stress#31050

Draft
nvartolomei wants to merge 12 commits into
redpanda-data:devfrom
nvartolomei:nv/antithesis-manual
Draft

ct stress#31050
nvartolomei wants to merge 12 commits into
redpanda-data:devfrom
nvartolomei:nv/antithesis-manual

Conversation

@nvartolomei

Copy link
Copy Markdown
Contributor

Backports Required

  • none - not a bug fix
  • none - this is a backport
  • none - issue does not exist in previous branches
  • none - papercut/not impactful enough to backport
  • v26.1.x
  • v25.3.x
  • v25.2.x

Release Notes

@nvartolomei nvartolomei force-pushed the nv/antithesis-manual branch 2 times, most recently from 50eda2e to 52b9b1f Compare July 9, 2026 13:41
@nvartolomei nvartolomei force-pushed the nv/antithesis-manual branch from 52b9b1f to eb6b3d9 Compare July 9, 2026 15:57
Produced records now carry a magic tag, a per-producer nonce and
sequence, the target partition, and a CRC over the body. The range
checker decodes them and asserts each record is intact, one of ours,
served from the partition it was written to, and in per-producer
sequence order -- instead of only checking that offsets are contiguous.

parallel_driver_consume now runs the same validating read as the
anytime checker rather than fetching data and discarding it. Add a
manual check_offsets command that replays a fixed [o1,o2) range
verbatim, for repeating a read across rollbacks under the multiverse
debugger, and a produce-side liveness assertion so a run that never
writes cannot pass every safety check vacuously.
Register a ProducerOnDataLossDetected hook so an out-of-order sequence
or unknown-producer-id that franz-go can't attribute to benign prefix
truncation is recorded as an Antithesis reachability failure instead of
being silently reset and produced through.
Redpanda opens config files with O_DIRECT. Under Antithesis a bind
mount is backed by overlay-over-squashfs, which mishandles O_DIRECT
(close() returns EINVAL), so reading the bootstrap config directly off
its mount crashes the broker at startup.

Ship the config under scripts/ and copy it onto the container's
writable layer via an entrypoint wrapper before starting Redpanda; the
writable layer handles O_DIRECT. This removes the need for the
--kernel-page-cache workaround, restoring the production O_DIRECT path.
Add a `faults` block that packaging renders into the tenant custom.*
launch params, making the manifest the source of truth for the fault
posture rather than the webhook defaults. Enable cpu modulation, scope
node hang/throttle to the brokers and the workload, and send node
termination and network-fault exclusion explicitly empty -- nothing is
terminated and minio still sees network faults, exercising object-storage
disruption.
Send the manifest `name` (was `description`) as antithesis.test_name so
runs are identifiable in reports instead of all showing the endpoint's
"Basic Test". Add --source (antithesis.source) grouping property history
and --ephemeral/--no-ephemeral (antithesis.is_ephemeral): default to
ephemeral for ad-hoc runs, require --source for persistent ones.
partitionBounds and readRange hardcoded foo; the compacted-topic
workload reads its own topic through the same helpers.
ctc fuzzes compaction with a convergent key/value model: producers
flock a bucket of keys, produce ascending counter values, and commit
progress to a tracker file only once every record is acked, so the
latest surviving record per key must never fall below the committed
counter. The sweeper asserts what survives compaction -- in-order
offsets, record integrity, per-producer produce order -- and that
compaction visibly runs (offset gaps); holding survivors against the
tracker is left to a later checker. The cloud-topics compaction
interval drops to 10s so short runs see many cycles.
@nvartolomei nvartolomei force-pushed the nv/antithesis-manual branch from eb6b3d9 to c81e974 Compare July 14, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant