rdkafka-hs-1.1.0.0: docs/testing/seek-evidence.json
{
"schema_version": 1,
"owner": 10,
"status": "complete",
"revision": "4c2a519c7c1ea72f05e9f97a6ac77a0abd28054a",
"fingerprint": "e0efdb19089bfda33df08ddbc34c1a98a57c7a16430ce167addf2a2ff3c3fa14",
"at": "2026-10-24T11:02:42.589841+00:00",
"focused_tests": 76,
"unit_tests": 21,
"integration_tests": 320,
"normal_seconds": 156.82,
"instrumented_seconds": 149.39,
"tooling_controls": 18,
"native": "(\"2.15.0\",34537727)",
"broker_versions": [
{
"node_id": 0,
"version": "v26.2.1 - 8cd781be99c737c7d147d9dc239a0bbdd591a4d8"
}
],
"tests": [
"rdkafka-hs-integration.seek-partitions.async.unassigned member reports native error",
"rdkafka-hs-integration.seek-partitions.async.empty list preserves top-level invalid argument",
"rdkafka-hs-integration.seek-partitions.async.zero-timeout unassigned failure is immediate",
"rdkafka-hs-integration.seek-partitions.async.empty zero-timeout preserves top-level error",
"rdkafka-hs-integration.seek-partitions.async.rewind without assignment does not seek",
"rdkafka-hs-integration.seek-partitions.async.top-level error precedes member error and is destroyed",
"rdkafka-hs-integration.seek-partitions.async.first substantive error follows input order",
"rdkafka-hs-integration.seek-partitions.async.reversed input selects the other substantive error",
"rdkafka-hs-integration.seek-partitions.async.zero-timeout skips pending but reports later failure",
"rdkafka-hs-integration.seek-partitions.async.nonzero-timeout preserves residual pending",
"rdkafka-hs-integration.seek-partitions.async.zero-timeout all pending promises initiation only",
"rdkafka-hs-integration.seek-partitions.async.nonzero-timeout all pending is not success",
"rdkafka-hs-integration.seek-partitions.async.top-level decoder exception still destroys error object",
"rdkafka-hs-integration.seek-partitions.async.rewind assignment failure prevents seek",
"rdkafka-hs-integration.seek-partitions.async.single seek replays exact record",
"rdkafka-hs-integration.seek-partitions.async.multiple successful seeks replay both partitions",
"rdkafka-hs-integration.seek-partitions.async.mixed seek reports failure without rolling back success",
"rdkafka-hs-integration.seek-partitions.async.mixed errors follow actual request order",
"rdkafka-hs-integration.seek-partitions.async.zero-timeout valid seek is followed by synchronous replay",
"rdkafka-hs-integration.seek-partitions.async.zero-timeout mixed request keeps immediate unknown error",
"rdkafka-hs-integration.seek-partitions.async.zero-timeout logical offsets promise initiation only",
"rdkafka-hs-integration.seek-partitions.async.infinite native timeout completes a valid seek",
"rdkafka-hs-integration.seek-partitions.async.duplicate entries preserve residual native pending error",
"rdkafka-hs-integration.seek-partitions.async.unassigned existing partition returns state error",
"rdkafka-hs-integration.seek-partitions.async.unknown topic reports member error",
"rdkafka-hs-integration.seek-partitions.async.stored sentinel is rejected without altering position",
"rdkafka-hs-integration.seek-partitions.async.end and exact high watermark produce no record",
"rdkafka-hs-integration.seek-partitions.async.seek before retained log range resets to actual low watermark",
"rdkafka-hs-integration.seek-partitions.async.rewind without committed offset starts at beginning",
"rdkafka-hs-integration.seek-partitions.async.rewind uses committed next offset exactly",
"rdkafka-hs-integration.seek-partitions.async.rewind message commit resumes after committed message",
"rdkafka-hs-integration.seek-partitions.async.rewind lookup failure prevents seek",
"rdkafka-hs-integration.seek-partitions.async.rewind propagates assignment change after committed lookup",
"rdkafka-hs-integration.seek-partitions.async.beginning sentinel replays offset zero",
"rdkafka-hs-integration.seek-partitions.async.absolute low watermark replays offset zero",
"rdkafka-hs-integration.seek-partitions.async.invalid sentinel uses configured earliest reset",
"rdkafka-hs-integration.seek-partitions.async.above high watermark uses configured earliest reset",
"rdkafka-hs-integration.seek-partitions.async.native tail sentinel replays final two records",
"rdkafka-hs-integration.seek-partitions.sync.unassigned member reports native error",
"rdkafka-hs-integration.seek-partitions.sync.empty list preserves top-level invalid argument",
"rdkafka-hs-integration.seek-partitions.sync.zero-timeout unassigned failure is immediate",
"rdkafka-hs-integration.seek-partitions.sync.empty zero-timeout preserves top-level error",
"rdkafka-hs-integration.seek-partitions.sync.rewind without assignment does not seek",
"rdkafka-hs-integration.seek-partitions.sync.top-level error precedes member error and is destroyed",
"rdkafka-hs-integration.seek-partitions.sync.first substantive error follows input order",
"rdkafka-hs-integration.seek-partitions.sync.reversed input selects the other substantive error",
"rdkafka-hs-integration.seek-partitions.sync.zero-timeout skips pending but reports later failure",
"rdkafka-hs-integration.seek-partitions.sync.nonzero-timeout preserves residual pending",
"rdkafka-hs-integration.seek-partitions.sync.zero-timeout all pending promises initiation only",
"rdkafka-hs-integration.seek-partitions.sync.nonzero-timeout all pending is not success",
"rdkafka-hs-integration.seek-partitions.sync.top-level decoder exception still destroys error object",
"rdkafka-hs-integration.seek-partitions.sync.rewind assignment failure prevents seek",
"rdkafka-hs-integration.seek-partitions.sync.single seek replays exact record",
"rdkafka-hs-integration.seek-partitions.sync.multiple successful seeks replay both partitions",
"rdkafka-hs-integration.seek-partitions.sync.mixed seek reports failure without rolling back success",
"rdkafka-hs-integration.seek-partitions.sync.mixed errors follow actual request order",
"rdkafka-hs-integration.seek-partitions.sync.zero-timeout valid seek is followed by synchronous replay",
"rdkafka-hs-integration.seek-partitions.sync.zero-timeout mixed request keeps immediate unknown error",
"rdkafka-hs-integration.seek-partitions.sync.zero-timeout logical offsets promise initiation only",
"rdkafka-hs-integration.seek-partitions.sync.infinite native timeout completes a valid seek",
"rdkafka-hs-integration.seek-partitions.sync.duplicate entries preserve residual native pending error",
"rdkafka-hs-integration.seek-partitions.sync.unassigned existing partition returns state error",
"rdkafka-hs-integration.seek-partitions.sync.unknown topic reports member error",
"rdkafka-hs-integration.seek-partitions.sync.stored sentinel is rejected without altering position",
"rdkafka-hs-integration.seek-partitions.sync.end and exact high watermark produce no record",
"rdkafka-hs-integration.seek-partitions.sync.seek before retained log range resets to actual low watermark",
"rdkafka-hs-integration.seek-partitions.sync.rewind without committed offset starts at beginning",
"rdkafka-hs-integration.seek-partitions.sync.rewind uses committed next offset exactly",
"rdkafka-hs-integration.seek-partitions.sync.rewind message commit resumes after committed message",
"rdkafka-hs-integration.seek-partitions.sync.rewind lookup failure prevents seek",
"rdkafka-hs-integration.seek-partitions.sync.rewind propagates assignment change after committed lookup",
"rdkafka-hs-integration.seek-partitions.sync.beginning sentinel replays offset zero",
"rdkafka-hs-integration.seek-partitions.sync.absolute low watermark replays offset zero",
"rdkafka-hs-integration.seek-partitions.sync.invalid sentinel uses configured earliest reset",
"rdkafka-hs-integration.seek-partitions.sync.above high watermark uses configured earliest reset",
"rdkafka-hs-integration.seek-partitions.sync.native tail sentinel replays final two records"
],
"mutation_evidence": "dist-seek-mutations/20261024T105811Z-z8yr14j7/results.json",
"mutations": 7,
"unchanged_control": true,
"source_reference": {
"project": "mori://confluentinc/librdkafka",
"project_relative_paths": [
"librdkafka/src/rdkafka.h",
"librdkafka/src/rdkafka.c",
"librdkafka/src/rdkafka_partition.c"
],
"artifact_uri_status": "pending",
"local_revision": "122fc0c98562d086c3618bf376862632ae0808e1",
"release_tag": "v2.15.0",
"release_revision": "9a94e11452cdeb0a844db44ee5dd01ccbe17d3ab",
"release_function_sha256": {
"rd_kafka_seek_partitions": "2f37a035e8427eafda6d7a35d3c423c5dbbf1fe97b25e09535123564894b54eb",
"rd_kafka_toppar_seek": "649914c932a65375d7043ae6c1941ac62d42ec1f98587b27b44390991b933f46",
"rd_kafka_topic_partition_list_set_offset": "9536878a019edaffd90edc02a218bcc64314b71d5e020fdc198465bf153c5e29"
},
"local_functions_identical_to_release": true
},
"commands": {
"focused": "nix develop -c just test-it '--test-options=-p /seek-partitions/'",
"normal": "nix develop -c cabal test rdkafka-hs-test rdkafka-hs-integration -f integration --test-show-details=direct",
"instrumented": "nix develop -c just coverage",
"mutations": "nix develop -c python3 scripts/test-seek-mutations.py",
"checks": [
"nix develop -c just check",
"nix develop -c cabal check",
"okf validate docs/adr --strict --profile docs/adr/profile.dhall --profile-enforce --log-enforce"
]
},
"artifacts": {
"/tmp/rdkafka-ep10-before.log": "f1a047d79f732e979da2dd34749c3599e23385f8713577a7d562ffbec5a5243e",
"/tmp/rdkafka-ep10-matrix.log": "06ac8c7254a563534ad5e0565043689a7ff778aa01639ce35fc4db844f621924",
"/tmp/rdkafka-ep10-matrix3.log": "2f1d7fe426444e23508d7b8d1db4d11fc23dcb428edd1e9f1953cc6ef659b291",
"/tmp/rdkafka-ep10-normal.log": "4afdd6c417f6a4900034372090865bd63b4eb1445b368605313d9ba7673595ad",
"/tmp/rdkafka-ep10-check.log": "d057de772c82e3e611b346c9a0c1e8cea400369f5b3e041849eaeb847a01a9e4",
"/tmp/rdkafka-ep10-cabal-check.log": "e56e09e5ab9d1068ef55f6cfff9c20c9defa3f40af0c5abb1ff43d69d5ce931e",
"/tmp/rdkafka-ep10-coverage.log": "8a0bb043d7f99ba5b1aaf1bbab3b45d696cd1f0e7082833fc89b6329063676d7",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/results.json": "3a593ea4fb338a71dee2a78491eff1343de879a5ff8405ac480cdf91faa2fb3d",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/unchanged-control.build.log": "d2f08ca40b87a60371f36b0be3f5822c636bde13bbe516eb97fa68170e17a2db",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/unchanged-control.test.log": "1ae9bf8c004dda8ed5ce07bd7a0fc75ddd37080fc429011dbe220c276bf0fd64",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/member-errors-dropped.build.log": "d4e1748b9a8a0221535f86fc1799e3c96edd4ea858030d32929de8b8596f1267",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/member-errors-dropped.test.log": "0931bc2cdea3d1a675f3be43ac4e58e419ff06665a8eeeb434415d7eb5c95401",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/error-order-reversed.build.log": "a987a77cfb0f3da8c4e120d84c73cc748b6be14347a917dc6d3d8d49534a73de",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/error-order-reversed.test.log": "e3a44dc4a043806bb91d318f9ec10b80d58206b0b8254b594fa832775d43ca04",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/pending-always-normalized.build.log": "a987a77cfb0f3da8c4e120d84c73cc748b6be14347a917dc6d3d8d49534a73de",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/pending-always-normalized.test.log": "b74f1c229ef02ee0a459057716c944321a446c98af5c38e7c83b50741ec29842",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/pending-never-normalized.build.log": "c47185e3f01580faa721695b917dfd8b9757bab191190b0ac15abf17ac189b55",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/pending-never-normalized.test.log": "4370a1f48eadbb51b2adf0dd64838f4c870252962ab16c74e77aad883fccbf04",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/message-commit-forgets-next-offset.build.log": "12f40c3a3ea7edc79a0cee00cfaaa8cb1ae60d98a13d3193ad63b1b25445db77",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/message-commit-forgets-next-offset.test.log": "d56732a3b894a8154ae131d024db6523a3059ecae31e15bc2237268e823c4864",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/rewind-decrements-committed-offset.build.log": "12f40c3a3ea7edc79a0cee00cfaaa8cb1ae60d98a13d3193ad63b1b25445db77",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/rewind-decrements-committed-offset.test.log": "4883b661b9edf946e312c760c55d4eb56a0466722efd59c64fe9890a97d100c0",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/rewind-discards-seek-error.build.log": "a987a77cfb0f3da8c4e120d84c73cc748b6be14347a917dc6d3d8d49534a73de",
"dist-seek-mutations/20261024T105811Z-z8yr14j7/rewind-discards-seek-error.test.log": "e037412c061ae8a34ee1f0e4e0b004f1a4cc5a0eca7326271c79ee05045a45d1"
},
"owned_source_sha256": {
"src/Kafka/Consumer.hs": "dea0ff7193ca4c10962fcf281a8985e654862de0f2e31a260bdd8d25d6152002",
"src/Kafka/Consumer/Convert.hs": "d9e821da80314908c093f021a43c1603331db7538a324111f3da1c1f132a1a4c",
"test-integration/Kafka/Integration/SeekPartitionsTest.hs": "681ac36e6934a0ccc84bbc2f956926e89e32b8a183dada2028002b3237a7cdea",
"test-integration/Kafka/SeekTestSupport.hs": "5c19e85be0f3ec19a750c8d7ac1e87b955dca8948d8f216cab036175f34b89f8",
"test-integration/cbits/seek_faults.c": "9aad50936a4bd1dcfb24b0a7b7b01eb50ce0d137ae79485db1ca599a6ffc9f4a",
"scripts/test-seek-mutations.py": "5a08ea029b3ac4ba0175b3446377f0e49cf586538a6ad6245ad5203b35322ea7"
}
}