rdkafka-hs-1.1.0.0: docs/testing/compatibility-matrix.json
{
"schema_version": 1,
"scope": "Historical primary release retained; exact current primary, Linux/newer, distributed and security scenarios accepted. Comprehensive qualification remains open.",
"fingerprint": "060dade4e8a9c764dabee54df3030fa6d857be3ea1404a2bc680a45ddadd5e4e",
"primary": [
{
"os": "macOS 26.7",
"kernel": "Darwin 25.6.0",
"architecture": "arm64",
"ghc": "9.12.4",
"cabal": "3.16.1.0",
"native": "2.15.0",
"loaded_native": "(\"2.15.0\",34537727)",
"broker_versions": [
{
"node_id": 0,
"version": "v26.2.1 - 8cd781be99c737c7d147d9dc239a0bbdd591a4d8"
}
],
"broker": "127.0.0.1:39092",
"id": "darwin-arm64-ghc9124-native215-redpanda2621",
"status": "passed",
"evidence": "docs/testing/primary-validation-evidence.json"
}
],
"deferred": [
{
"id": "linux-native-diagnostics",
"owner": 17,
"status": "passed named expanded scenarios; final EP-20 integration remains open"
},
{
"id": "newer-released-toolchain-native",
"owner": 17,
"status": "passed named expanded scenarios; final EP-20 integration remains open"
},
{
"id": "apache-distributed-failure-group-transaction",
"owner": 18,
"status": "passed named expanded scenarios; final EP-20 integration remains open"
},
{
"id": "sasl-tls-acl-credential-reconnect",
"owner": 19,
"status": "passed named expanded scenarios; final EP-20 integration remains open"
},
{
"id": "strict-complete-inventory-matrix-package-gate",
"owner": 20,
"status": "deferred; not qualified"
}
],
"limits": [
"No new environment claim follows from broad dependency bounds.",
"No comprehensive native leak claim follows from Darwin ASan runs with leak detection disabled.",
"Plaintext setter checks do not prove real authentication or credential replacement at a broker."
],
"qualification": {
"schema_version": 1,
"status": "in-progress; EP-16 required source/cause work and EP-20 integration remain open",
"candidate_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c",
"tuple_fields": [
"id",
"owner",
"required",
"status",
"source",
"environment",
"test_configuration",
"scenarios",
"artifacts"
],
"source_fields": [
"candidate_fingerprint",
"revision",
"archive_sha256",
"configuration_sha256"
],
"environment_fields": [
"os",
"kernel",
"architecture",
"ghc",
"cabal",
"native_version",
"loaded_native_identity",
"broker_version",
"broker_topology"
],
"scenario_fields": [
"id",
"required",
"status",
"command",
"tests",
"passed",
"artifacts",
"limitations"
],
"artifact_format": "Repository-relative path to immutable output and its SHA-256; credentials and private keys are never fields",
"status_values": [
"not-run",
"in-progress",
"passed",
"failed",
"unavailable"
],
"acceptance": "Only passed required scenarios with nonzero expected test identities, actual loaded versions, matching source/configuration and verified artifact hashes qualify. Historical primary evidence retains its original source identity.",
"tuples": [
{
"id": "darwin-arm64-ghc9124-native215-redpanda2621-current",
"owner": 17,
"required": true,
"status": "passed",
"source": {
"candidate_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c",
"revision": "bfa4f2e plus captured source",
"configuration": "Normal and HPC root builds; separate actual nonthreaded build"
},
"environment": {
"os": "macOS 26.7",
"kernel": "Darwin 25.6.0",
"architecture": "arm64",
"ghc": "9.12.4",
"cabal": "3.16.1.0",
"native_version": "2.15.0",
"loaded_native_identity": "(\"2.15.0\",34537727)",
"broker_version": [
{
"node_id": 0,
"version": "v26.2.1 - 8cd781be99c737c7d147d9dc239a0bbdd591a4d8"
}
],
"broker_topology": "Project-owned single Redpanda at 127.0.0.1:39092, admin 39644"
},
"test_configuration": {
"quickcheck_tests": 1000,
"quickcheck_replay": 20261024,
"native_asan": "Matched Apple clang runtime; detect_leaks=0"
},
"scenarios": [
{
"id": "complete-normal-and-mapped",
"required": true,
"status": "passed",
"command": [
"scripts/test-coverage.sh"
],
"tests": [
"rdkafka-hs.Callback owner.bridge allocation executes masked before ownership is recorded",
"rdkafka-hs.Callback owner.installed and replaced bridges release exactly once",
"rdkafka-hs.Callback owner.failed native install still owns its allocated bridge",
"rdkafka-hs.Callback owner.failed allocation has no release",
"rdkafka-hs.Callback owner.transfer preserves a callable bridge until client release",
"rdkafka-hs.Callback owner.transferred and released owners reject reuse before allocating",
"rdkafka-hs.Callback owner.release retry does not repeat completed releases",
"rdkafka-hs.Callback owner.concurrent releases join before returning",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.the poll mode defaults to async",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.properties composed after the poll mode keep it",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.properties composed before the poll mode keep it",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.a later poll mode overrides an earlier one",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordMapSpec.should extract key",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordMapSpec.should extract value",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordMapSpec.should extract both key and value",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should sequence",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should traverse",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should bisequence",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should bitraverse",
"rdkafka-hs.Kafka.Version.linked librdkafka is at least 2.15.0",
"rdkafka-hs.Kafka.Version.version string agrees with the version number",
"rdkafka-hs.Kafka.Version.decodes the hex version encoding",
"rdkafka-hs.Producer properties generated.program follows last-write semantics",
"rdkafka-hs.Producer properties generated.configuration has left and right identity",
"rdkafka-hs.Producer properties generated.configuration composition is associative",
"rdkafka-hs.Producer properties generated.composition appends writes in order",
"rdkafka-hs.Producer properties generated.unrelated keys survive a conflicting write",
"rdkafka-hs.Producer properties generated.last explicit log level wins",
"rdkafka-hs.Producer properties generated.fixed empty duplicate and binary text values",
"rdkafka-hs.Public properties.consumer composition.consumer program follows independent last-write model",
"rdkafka-hs.Public properties.consumer composition.consumer identity preserves every observable field",
"rdkafka-hs.Public properties.consumer composition.consumer association preserves writes and poll mode",
"rdkafka-hs.Public properties.consumer composition.consumer composition appends programs",
"rdkafka-hs.Public properties.consumer composition.unset poll mode preserves a prior explicit mode",
"rdkafka-hs.Public properties.consumer composition.consumer helpers write exact native property names",
"rdkafka-hs.Public properties.subscription.subscription follows last-write properties and topic union",
"rdkafka-hs.Public properties.subscription.subscription identity and association retain topics and properties",
"rdkafka-hs.Public properties.subscription.subscription composition appends property writes",
"rdkafka-hs.Public properties.subscription.later subscription reset and explicit properties win",
"rdkafka-hs.Public properties.headers.header list round-trip preserves duplicates and binary bytes",
"rdkafka-hs.Public properties.headers.header concatenation follows list order",
"rdkafka-hs.Public properties.headers.headers have two identities and associative concatenation",
"rdkafka-hs.Public properties.headers.fixed duplicate empty and binary header values",
"rdkafka-hs.Public properties.records.record functor identity",
"rdkafka-hs.Public properties.records.record functor composition",
"rdkafka-hs.Public properties.records.record bifunctor identity and composition",
"rdkafka-hs.Public properties.records.record mapping preserves origin timestamp and headers",
"rdkafka-hs.Public properties.records.record traversal identity and failure preserve the applicative contract",
"rdkafka-hs.Public properties.records.record traversal composition preserves nested effects",
"rdkafka-hs.Public properties.records.record bitraversal visits key before value",
"rdkafka-hs.Public properties.records.record bitraversal composition preserves nested effects",
"rdkafka-hs.Public properties.records.record folds retain key and value order",
"rdkafka-hs.Public properties.records.deprecated record mapping remains equivalent",
"rdkafka-hs.Public properties.records.deprecated traversal helpers preserve successful effects",
"rdkafka-hs.Public properties.records.deprecated traversal helpers preserve failed effects",
"rdkafka-hs.Public properties.representations.text newtypes preserve arbitrary represented text",
"rdkafka-hs.Public properties.representations.integer newtypes preserve signed machine boundaries",
"rdkafka-hs.Public properties.representations.offset and milliseconds preserve signed 64-bit boundaries",
"rdkafka-hs.Public properties.representations.timestamp constructors retain their represented boundary",
"rdkafka-hs.Public properties.representations.system topic classification requires two initial underscores",
"rdkafka-hs.Public properties.representations.fixed empty underscore and signed numeric boundaries",
"rdkafka-hs.Public properties.version.version bytes decode independently of prerelease byte",
"rdkafka-hs.Public properties.version.version extraction agrees with arithmetic for every Int",
"rdkafka-hs.Public properties.version.fixed zero and full version byte boundaries",
"rdkafka-hs.Public properties.every compression debug and log enumeration has its native spelling",
"rdkafka-hs.Public data contracts.builders.semigroup defaults retain writes callbacks and subscription union",
"rdkafka-hs.Public data contracts.builders.consumer builders preserve exact settings and leave other fields unset",
"rdkafka-hs.Public data contracts.builders.producer builders preserve global versus explicit topic placement",
"rdkafka-hs.Public data contracts.builders.all codecs have independently specified builder spellings",
"rdkafka-hs.Public data contracts.builders.debug contexts preserve order duplicates and the empty-list identity",
"rdkafka-hs.Public data contracts.representations.numeric ordering and reads agree with represented signed values",
"rdkafka-hs.Public data contracts.representations.numeric instances preserve primitive arithmetic including boundaries",
"rdkafka-hs.Public data contracts.representations.text ordering string conversion reads and generic representations round-trip",
"rdkafka-hs.Public data contracts.representations.consumer variants retain fields and distinguish constructors",
"rdkafka-hs.Public data contracts.representations.producer records delivery variants and topic requests retain exact fields",
"rdkafka-hs.Public data contracts.representations.metadata structures retain identities states members and binary data",
"rdkafka-hs.Public data contracts.representations.every Kafka error preserves its Exception identity and generic form",
"rdkafka-hs.Public data contracts.all linked native errors retain sparse numeric codes names and descriptions",
"rdkafka-hs-integration.Fixture error controls.immediate enqueue rejection propagates",
"rdkafka-hs-integration.Fixture error controls.delivery failure propagates",
"rdkafka-hs-integration.Fixture error controls.flush failure propagates",
"rdkafka-hs-integration.Fixture error controls.missing delivery callback fails",
"rdkafka-hs-integration.Fixture error controls.wrong delivery identity fails",
"rdkafka-hs-integration.Fixture error controls.matching delivery succeeds",
"rdkafka-hs-integration.Fixture error controls.unexpected poll error propagates",
"rdkafka-hs-integration.Fixture error controls.missing record fails",
"rdkafka-hs-integration.Fixture error controls.extra record fails",
"rdkafka-hs-integration.Fixture error controls.idle before exact records is retried",
"rdkafka-hs-integration.Fixture error controls.partial setup releases first resource",
"rdkafka-hs-integration.Fixture error controls.interrupted partial setup releases first resource",
"rdkafka-hs-integration.Fixture error controls.weak control retains while rooted and collects after release",
"rdkafka-hs-integration.configuration.defaults to the private broker",
"rdkafka-hs-integration.configuration.accepts another private endpoint",
"rdkafka-hs-integration.configuration.accepts a list of private endpoints",
"rdkafka-hs-integration.configuration.rejects an empty value",
"rdkafka-hs-integration.configuration.rejects localhost:9092",
"rdkafka-hs-integration.configuration.rejects 127.0.0.1:9092",
"rdkafka-hs-integration.configuration.rejects [::1]:9092",
"rdkafka-hs-integration.configuration.rejects a loopback host without a port",
"rdkafka-hs-integration.configuration.rejects the shared broker anywhere in a list",
"rdkafka-hs-integration.callback-lifetime.async throwing error callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing log callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing stats callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing rebalance callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing commit callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing error callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing log callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing stats callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing rebalance callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing commit callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.sync error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.producer delivery callback releases after native finalization",
"rdkafka-hs-integration.callback-lifetime.noncaptured control is collectible",
"rdkafka-hs-integration.callback-lifetime.async log callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.async stats callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.sync log callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.sync stats callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: topic",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: native",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: redirect",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: subscribe",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: topic",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: native",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: redirect",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: subscribe",
"rdkafka-hs-integration.callback-lifetime.producer native construction failure releases callbacks",
"rdkafka-hs-integration.callback-lifetime.async constructor exception at callback-install releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.async constructor exception at post-native-loglevel releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.sync constructor exception at callback-install releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.sync constructor exception at post-native-loglevel releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.async rebalance callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.async commit callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.sync rebalance callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.sync commit callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.replaced producer delivery callbacks both release",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native entry",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native completion",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native shutdown callback",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native entry",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native completion",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native shutdown callback",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native entry preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native completion preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native shutdown callback preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native entry preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native completion preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native shutdown callback preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation after poll stop and queue detachment preserves teardown",
"rdkafka-hs-integration.callback-lifetime.producer constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.producer constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-async constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-async constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-sync constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-sync constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.async cancellation while waiting for active callback permits retry",
"rdkafka-hs-integration.callback-lifetime.sync cancellation while waiting for active callback permits retry",
"rdkafka-hs-integration.callback-lifetime.async closed consumer GC releases its registrations once",
"rdkafka-hs-integration.callback-lifetime.sync closed consumer GC releases its registrations once",
"rdkafka-hs-integration.callback-lifetime.producer error callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.producer log callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.producer stats callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.failed native construction releases the caller-owned duplicate config",
"rdkafka-hs-integration.transaction-errors.transaction-error-leak-probe releases 300 immediate native errors",
"rdkafka-hs-integration.transaction-errors.native allocation control detects the inherited three-error leak",
"rdkafka-hs-integration.transaction-errors.initialization timeout destroys its native error on each retry",
"rdkafka-hs-integration.transaction-errors.zero-timeout initialization resumes successfully against the broker",
"rdkafka-hs-integration.transaction-errors.transaction state errors preserve empty commit and abort recovery",
"rdkafka-hs-integration.transaction-errors.duplicate transactional IDs report a real fatal fencing error",
"rdkafka-hs-integration.transaction-errors.broker-rejected delivery requires abort and permits a successful new transaction",
"rdkafka-hs-integration.transaction-errors.init without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.begin without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.abort without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.commit without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.offset without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.init NULL return remains success",
"rdkafka-hs-integration.transaction-errors.begin NULL return remains success",
"rdkafka-hs-integration.transaction-errors.abort NULL return remains success",
"rdkafka-hs-integration.transaction-errors.commit NULL return remains success",
"rdkafka-hs-integration.transaction-errors.offset NULL return remains success",
"rdkafka-hs-integration.transaction-errors.init invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.begin invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.abort invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.commit invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.offset invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 0 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 1 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 2 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 3 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 4 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 5 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 6 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 7 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 0 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 1 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 2 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 3 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 4 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 5 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 6 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 7 before destruction",
"rdkafka-hs-integration.transaction-errors.init cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.begin cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.abort cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 21 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 22 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 23 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 21 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 22 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 23 releases once",
"rdkafka-hs-integration.transaction-errors.async commit publishes output and source next offset atomically; abort publishes neither",
"rdkafka-hs-integration.transaction-errors.sync commit publishes output and source next offset atomically; abort publishes neither",
"rdkafka-hs-integration.lifecycle.flushProducerTimeout times out, purgeProducer empties the queue",
"rdkafka-hs-integration.lifecycle.consumerClosed is False until closeConsumer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials replaces credentials on a consumer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials replaces credentials on a producer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials rejects NUL in username without changing producer or consumer identity",
"rdkafka-hs-integration.lifecycle.setSaslCredentials rejects NUL in password without changing producer or consumer identity",
"rdkafka-hs-integration.lifecycle.setSaslCredentials releases each actual native error after decoding its exact code",
"rdkafka-hs-integration.lifecycle.setSaslCredentials cancellation at error decoding releases the owned error",
"rdkafka-hs-integration.lifecycle.setSaslCredentials cancellation at error acquisition releases the owned error",
"rdkafka-hs-integration.topic-configuration.singleton configuration reaches the broker",
"rdkafka-hs-integration.topic-configuration.native allocation control detects a retained request",
"rdkafka-hs-integration.topic-configuration.setter rejection releases allocated request before submission",
"rdkafka-hs-integration.topic-configuration.interruption after allocation releases request before submission",
"rdkafka-hs-integration.topic-configuration.multiple configuration entries reach the broker",
"rdkafka-hs-integration.topic-configuration.broker-rejected values release requests and response events repeatedly",
"rdkafka-hs-integration.topic-configuration.mismatched topic in an error response cannot report another topic's error",
"rdkafka-hs-integration.topic-configuration.unrepresentable partition count never wraps to broker defaults",
"rdkafka-hs-integration.topic-configuration.NUL in a topic name never creates a truncated topic",
"rdkafka-hs-integration.topic-configuration.unresponsive broker preserves the native timeout error",
"rdkafka-hs-integration.topic-configuration.empty configuration creates a usable topic",
"rdkafka-hs-integration.topic-configuration.later setter rejection releases partially configured request",
"rdkafka-hs-integration.topic-configuration.duplicate creation preserves the existing topic",
"rdkafka-hs-integration.topic-configuration.deletion removes exactly the existing topic",
"rdkafka-hs-integration.topic-configuration.missing topic deletion preserves its error and releases the request",
"rdkafka-hs-integration.topic-configuration.NUL deletion cannot remove a truncated victim name",
"rdkafka-hs-integration.topic-configuration.broker default partition and replication counts remain supported",
"rdkafka-hs-integration.topic-configuration.replication above the available broker count is rejected",
"rdkafka-hs-integration.topic-configuration.unsupported configuration follows the declared broker policy",
"rdkafka-hs-integration.topic-configuration.minimum unrepresentable partition count is rejected",
"rdkafka-hs-integration.topic-configuration.maximum unrepresentable replication count is rejected",
"rdkafka-hs-integration.topic-configuration.minimum unrepresentable replication count is rejected",
"rdkafka-hs-integration.topic-configuration.NUL configuration key is rejected before native allocation",
"rdkafka-hs-integration.topic-configuration.NUL configuration value is rejected before native allocation",
"rdkafka-hs-integration.topic-configuration.negative invalid partition count retains native validation",
"rdkafka-hs-integration.topic-configuration.maximum C partition count retains native validation",
"rdkafka-hs-integration.topic-configuration.negative invalid replication count retains native validation",
"rdkafka-hs-integration.topic-configuration.maximum C replication count retains native validation",
"rdkafka-hs-integration.topic-configuration.empty topic name is rejected by the broker",
"rdkafka-hs-integration.topic-configuration.space in a topic name is rejected by the broker",
"rdkafka-hs-integration.topic-configuration.overlong topic name is rejected by the broker",
"rdkafka-hs-integration.topic-configuration.zero partition count is rejected by the broker",
"rdkafka-hs-integration.topic-configuration.zero replication count is rejected by the broker",
"rdkafka-hs-integration.topic-configuration.wrong event type fails and releases its event",
"rdkafka-hs-integration.topic-configuration.empty response fails and releases its event",
"rdkafka-hs-integration.topic-configuration.wrong topic response cannot report success",
"rdkafka-hs-integration.topic-configuration.missing polled event reports a timeout",
"rdkafka-hs-integration.topic-configuration.delayed response succeeds with balanced ownership",
"rdkafka-hs-integration.topic-configuration.consumer administration applies settings in async mode",
"rdkafka-hs-integration.topic-configuration.consumer administration applies settings in sync mode",
"rdkafka-hs-integration.topic-configuration.consumer administration applies settings in async-closed mode",
"rdkafka-hs-integration.topic-configuration.consumer administration applies settings in sync-closed mode",
"rdkafka-hs-integration.topic-configuration.concurrent requests keep their own queues and responses",
"rdkafka-hs-integration.topic-configuration.unresponsive deletion preserves the native timeout error",
"rdkafka-hs-integration.topic-configuration.deletion rejects a wrong event type and releases it",
"rdkafka-hs-integration.topic-configuration.deletion rejects an empty result and releases its event",
"rdkafka-hs-integration.topic-configuration.deletion rejects a mismatched topic result",
"rdkafka-hs-integration.topic-configuration.deletion reports a missing response as a timeout",
"rdkafka-hs-integration.topic-configuration.missing native timeout configuration returns an error",
"rdkafka-hs-integration.topic-configuration.malformed native timeout configuration returns an error",
"rdkafka-hs-integration.topic-configuration.zero native timeout configuration returns an error",
"rdkafka-hs-integration.topic-configuration.negative native timeout configuration returns an error",
"rdkafka-hs-integration.topic-configuration.overflowing native timeout configuration returns an error",
"rdkafka-hs-integration.topic-configuration.oversized native timeout configuration never reads a truncated buffer",
"rdkafka-hs-integration.producer-regressions.explicit topic timeout expires an accepted message",
"rdkafka-hs-integration.producer-regressions.global timeout still expires an accepted message",
"rdkafka-hs-integration.producer-regressions.queue-full rejection releases callback capture without invoking it",
"rdkafka-hs-integration.producer-regressions.accepted callback retains its capture until a purged report completes",
"rdkafka-hs-integration.producer-regressions.throwing global callback preserves per-message delivery and releases capture",
"rdkafka-hs-integration.producer-regressions.throwing per-message callback reports exception and releases capture",
"rdkafka-hs-integration.producer-regressions.repeated queue-full rejections release every callback capture",
"rdkafka-hs-integration.producer-regressions.cancellation at a rejected enqueue releases capture before unmasking",
"rdkafka-hs-integration.producer-regressions.cancellation after native acceptance retains callback until its report",
"rdkafka-hs-integration.producer-regressions.another poller can deliver before successful enqueue returns",
"rdkafka-hs-integration.producer-regressions.running callback keeps its capture after the native root is released",
"rdkafka-hs-integration.producer-regressions.native error decoding failure releases rejected callback capture",
"rdkafka-hs-integration.producer-regressions.non-null native success-code error rejects and releases capture",
"rdkafka-hs-integration.producer-regressions.unknown native error code is preserved instead of reading errno",
"rdkafka-hs-integration.producer-regressions.actual client configuration: defaults",
"rdkafka-hs-integration.producer-regressions.actual client configuration: global only",
"rdkafka-hs-integration.producer-regressions.actual client configuration: topic only",
"rdkafka-hs-integration.producer-regressions.actual client configuration: disjoint maps",
"rdkafka-hs-integration.producer-regressions.actual client configuration: explicit topic wins duplicate",
"rdkafka-hs-integration.producer-regressions.actual client configuration: last topic property wins",
"rdkafka-hs-integration.producer-regressions.actual client configuration: empty topic map preserves global",
"rdkafka-hs-integration.producer-regressions.actual client configuration: zero topic timeout is infinite",
"rdkafka-hs-integration.producer-regressions.actual client configuration: maximum native topic timeout",
"rdkafka-hs-integration.producer-regressions.actual client configuration: explicit topic wins native timeout alias",
"rdkafka-hs-integration.producer-regressions.actual client configuration: topic codec overrides global codec",
"rdkafka-hs-integration.producer-regressions.actual client configuration: global codec survives unrelated topic keys",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with NoCompression",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Gzip",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Snappy",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Lz4",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Zstd",
"rdkafka-hs-integration.producer-regressions.queued purge flags: none",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue",
"rdkafka-hs-integration.producer-regressions.queued purge flags: inflight",
"rdkafka-hs-integration.producer-regressions.queued purge flags: nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue+inflight",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue+nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: inflight+nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: all",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: none",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: inflight",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue+inflight",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue+nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: inflight+nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: all",
"rdkafka-hs-integration.producer-regressions.bounded flush timeout recovers when the delayed response arrives",
"rdkafka-hs-integration.producer-regressions.close retries a timed-out flush until the delayed delivery completes",
"rdkafka-hs-integration.producer-regressions.oversized rejection releases capture without a delivery report",
"rdkafka-hs-integration.producer-regressions.known invalid partition rejection releases capture",
"rdkafka-hs-integration.producer-regressions.empty queue supports repeated flush and close",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: NUL topic name",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: NUL header name",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: maximum unrepresentable partition",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: minimum unrepresentable partition",
"rdkafka-hs-integration.producer-regressions.configuration rejection: unknown global key",
"rdkafka-hs-integration.producer-regressions.configuration rejection: unknown topic key",
"rdkafka-hs-integration.producer-regressions.configuration rejection: invalid topic timeout",
"rdkafka-hs-integration.producer-regressions.configuration rejection: excessive topic timeout",
"rdkafka-hs-integration.producer-regressions.configuration rejection: global-only key in topic map",
"rdkafka-hs-integration.producer-regressions.later delivery callback replaces the earlier callback",
"rdkafka-hs-integration.producer-regressions.null native delivery frame reports the generic errno fallback without dereferencing a message",
"rdkafka-hs-integration.producer-regressions.native delivery without an opaque Haskell callback preserves the complete record",
"rdkafka-hs-integration.producer-regressions.delivery header acquisition failure preserves the outcome with empty headers",
"rdkafka-hs-integration.producer-properties.callback composition preserves order and identity",
"rdkafka-hs-integration.consumer-properties.consumer callback composition preserves registration order and identity",
"rdkafka-hs-integration.consumer-properties.generated source offsets reach native code as the representable next position",
"rdkafka-hs-integration.consumer-properties.async later subscription reset reaches the native consumer",
"rdkafka-hs-integration.consumer-properties.sync later subscription reset reaches the native consumer",
"rdkafka-hs-integration.public-contract.partition-list-ownership.counter detects a retained native list before explicit release",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.pair conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.offset conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.ordinary input lists release after exact native results",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.missing native partition queue preserves assignment and later forwarding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.assignment outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription acquisition failure preserves the native error without a list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.assignment decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.cancellation at input allocation releases the owned list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.cancellation at assignment return releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.pair conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.offset conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.ordinary input lists release after exact native results",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.missing native partition queue preserves assignment and later forwarding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.assignment outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription acquisition failure preserves the native error without a list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.assignment decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.cancellation at input allocation releases the owned list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.cancellation at assignment return releases the owned output",
"rdkafka-hs-integration.public-contract.messages.batch conversion releases every returned native message",
"rdkafka-hs-integration.public-contract.messages.native message counter detects a retained final object",
"rdkafka-hs-integration.public-contract.messages.batch decoder exception releases unprocessed messages",
"rdkafka-hs-integration.public-contract.messages.batch native header errors remain errors while later records are released",
"rdkafka-hs-integration.public-contract.messages.batch cancellation at native return releases every acquired message",
"rdkafka-hs-integration.public-contract.messages.batch cancellation at middle conversion releases every acquired message",
"rdkafka-hs-integration.public-contract.messages.async single cancellation at native return releases its native message",
"rdkafka-hs-integration.public-contract.messages.async single cancellation at inside conversion releases its native message",
"rdkafka-hs-integration.public-contract.messages.sync single cancellation at native return releases its native message",
"rdkafka-hs-integration.public-contract.messages.sync single cancellation at inside conversion releases its native message",
"rdkafka-hs-integration.public-contract.messages.async header failure preserves the polled record origin",
"rdkafka-hs-integration.public-contract.messages.sync header failure preserves the polled record origin",
"rdkafka-hs-integration.public-contract.messages.async plain polling surfaces native header failure",
"rdkafka-hs-integration.public-contract.messages.sync plain polling surfaces native header failure",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent partition-and-offset",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent offset",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent partition",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent partition-and-offset",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent offset",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent partition",
"rdkafka-hs-integration.public-contract.messages.callback-event polling cancellation releases a returned message",
"rdkafka-hs-integration.public-contract.messages.callback buffer preserves attributed header failure",
"rdkafka-hs-integration.public-contract.messages.callback buffer preserves plain header failure",
"rdkafka-hs-integration.public-contract.messages.originless callback error survives seek filtering and a paused partition",
"rdkafka-hs-integration.public-contract.messages.callback-event polling releases and discards a returned fatal frame",
"rdkafka-hs-integration.public-contract.messages.zero batch size leaves the queued records available",
"rdkafka-hs-integration.public-contract.messages.unsupported sync batch does not discard a record",
"rdkafka-hs-integration.public-contract.messages.signed native batch failure preserves its error and queued data",
"rdkafka-hs-integration.public-contract.messages.infinite batch timeout returns available records",
"rdkafka-hs-integration.public-contract.messages.batch capacity 1 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 2 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 5 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: -1",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: -9223372036854775808",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: 9223372036854775807",
"rdkafka-hs-integration.public-contract.messages.batch preserves complete records followed by exact partition EOF and idle timeout",
"rdkafka-hs-integration.public-contract.messages.empty batch respects timeout 0",
"rdkafka-hs-integration.public-contract.messages.empty batch respects timeout 100",
"rdkafka-hs-integration.public-contract.rebalance-errors.native rebalance counter detects an undisposed error",
"rdkafka-hs-integration.public-contract.rebalance-errors.async real cooperative assignment and revocation preserve records",
"rdkafka-hs-integration.public-contract.rebalance-errors.sync real cooperative assignment and revocation preserve records",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative assign async native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative assign async decode reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative assign sync native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative assign sync decode reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative revoke async native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative revoke async decode reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative revoke sync native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.cooperative revoke sync decode reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.eager assign async native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.eager assign sync native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.eager revoke async native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.eager revoke sync native reports failure without a success event",
"rdkafka-hs-integration.public-contract.rebalance-errors.async unexpected rebalance error clears assignment and pending records",
"rdkafka-hs-integration.public-contract.rebalance-errors.async unexpected rebalance error preserves state when native reset fails",
"rdkafka-hs-integration.public-contract.rebalance-errors.sync unexpected rebalance error clears assignment and pending records",
"rdkafka-hs-integration.public-contract.rebalance-errors.sync unexpected rebalance error preserves state when native reset fails",
"rdkafka-hs-integration.public-contract.consumer-state.async.assignment-replacement",
"rdkafka-hs-integration.public-contract.consumer-state.async.unknown-assignment-reports-through-error-callback-and-recovers",
"rdkafka-hs-integration.public-contract.consumer-state.async.representable-partition-boundaries-keep-native-query-semantics",
"rdkafka-hs-integration.public-contract.consumer-state.async.deprecated-seek-reports-unassigned-state-and-recovers-after-assignment",
"rdkafka-hs-integration.public-contract.consumer-state.async.subscription-preserves-the-exact-multiple-topic-set",
"rdkafka-hs-integration.public-contract.consumer-state.async.empty-requests-preserve-empty-assignment",
"rdkafka-hs-integration.public-contract.consumer-state.async.unknown-position-is-invalid-without-native-error",
"rdkafka-hs-integration.public-contract.consumer-state.async.multiple-assigned-partitions-retain-the-exact-topic-map",
"rdkafka-hs-integration.public-contract.consumer-state.async.legacy-seek-constructor-failure-does-not-execute-an-earlier-valid-seek",
"rdkafka-hs-integration.public-contract.consumer-state.async.pause-resume-preserves-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-event-poll-preserves-application-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-seek-replaces-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-reassignment-replaces-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-pause-defers-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-legacy-seek-replaces-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-legacy-partial-seek-keeps-success",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-paused-partition-does-not-block-another",
"rdkafka-hs-integration.public-contract.consumer-state.async.callback-buffer-unassignment-discards-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.async.pausing-one-partition-leaves-the-other-running",
"rdkafka-hs-integration.public-contract.consumer-state.async.pause-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.async.resume-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.async.store-commit-next-offset",
"rdkafka-hs-integration.public-contract.consumer-state.async.store-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.async.position-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.async.deprecated-seek-exact-repeated-replay",
"rdkafka-hs-integration.public-contract.consumer-state.async.explicit-subscription-overrides-global-reset",
"rdkafka-hs-integration.public-contract.consumer-state.async.regex-subscription-selects-run-owned-topic",
"rdkafka-hs-integration.public-contract.consumer-state.async.global-topic-setting-survives-empty-subscription-properties",
"rdkafka-hs-integration.public-contract.consumer-state.sync.assignment-replacement",
"rdkafka-hs-integration.public-contract.consumer-state.sync.unknown-assignment-reports-through-error-callback-and-recovers",
"rdkafka-hs-integration.public-contract.consumer-state.sync.representable-partition-boundaries-keep-native-query-semantics",
"rdkafka-hs-integration.public-contract.consumer-state.sync.deprecated-seek-reports-unassigned-state-and-recovers-after-assignment",
"rdkafka-hs-integration.public-contract.consumer-state.sync.subscription-preserves-the-exact-multiple-topic-set",
"rdkafka-hs-integration.public-contract.consumer-state.sync.empty-requests-preserve-empty-assignment",
"rdkafka-hs-integration.public-contract.consumer-state.sync.unknown-position-is-invalid-without-native-error",
"rdkafka-hs-integration.public-contract.consumer-state.sync.multiple-assigned-partitions-retain-the-exact-topic-map",
"rdkafka-hs-integration.public-contract.consumer-state.sync.legacy-seek-constructor-failure-does-not-execute-an-earlier-valid-seek",
"rdkafka-hs-integration.public-contract.consumer-state.sync.pause-resume-preserves-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-event-poll-preserves-application-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-seek-replaces-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-reassignment-replaces-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-pause-defers-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-legacy-seek-replaces-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-legacy-partial-seek-keeps-success",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-paused-partition-does-not-block-another",
"rdkafka-hs-integration.public-contract.consumer-state.sync.callback-buffer-unassignment-discards-pending-records",
"rdkafka-hs-integration.public-contract.consumer-state.sync.pausing-one-partition-leaves-the-other-running",
"rdkafka-hs-integration.public-contract.consumer-state.sync.pause-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.sync.resume-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.sync.store-commit-next-offset",
"rdkafka-hs-integration.public-contract.consumer-state.sync.store-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.sync.position-mixed-member-error",
"rdkafka-hs-integration.public-contract.consumer-state.sync.deprecated-seek-exact-repeated-replay",
"rdkafka-hs-integration.public-contract.consumer-state.sync.explicit-subscription-overrides-global-reset",
"rdkafka-hs-integration.public-contract.consumer-state.sync.regex-subscription-selects-run-owned-topic",
"rdkafka-hs-integration.public-contract.consumer-state.sync.global-topic-setting-survives-empty-subscription-properties",
"rdkafka-hs-integration.public-contract.consumer-state.sync-buffer-fields-native-time",
"rdkafka-hs-integration.public-contract.consumer-state.sync-buffer-fields-no-time",
"rdkafka-hs-integration.public-contract.consumer-state.sync-buffer-fields-append-time",
"rdkafka-hs-integration.public-contract.consumer-state.sync-buffer-fields-create-time",
"rdkafka-hs-integration.public-contract.consumer-state.cooperative subset callbacks preserve unrelated buffers pauses and originless errors",
"rdkafka-hs-integration.public-contract.consumer-state.sync callback mixed seek retains only the failed partition's copied records",
"rdkafka-hs-integration.public-contract.consumer-commit.async commit modes preserve native flags callback offsets and broker state",
"rdkafka-hs-integration.public-contract.consumer-commit.sync commit modes preserve native flags callback offsets and broker state",
"rdkafka-hs-integration.public-contract.consumer-commit.async message and stored commits preserve unrelated partition offsets",
"rdkafka-hs-integration.public-contract.consumer-commit.sync message and stored commits preserve unrelated partition offsets",
"rdkafka-hs-integration.public-contract.consumer-commit.async empty commit requests preserve no-offset callbacks",
"rdkafka-hs-integration.public-contract.consumer-commit.sync empty commit requests preserve no-offset callbacks",
"rdkafka-hs-integration.public-contract.consumer-commit.async mixed broker commit failures preserve successful offsets",
"rdkafka-hs-integration.public-contract.consumer-commit.sync mixed broker commit failures preserve successful offsets",
"rdkafka-hs-integration.public-contract.consumer-commit.async committed query preserves an unavailable coordinator timeout",
"rdkafka-hs-integration.public-contract.consumer-commit.sync committed query preserves an unavailable coordinator timeout",
"rdkafka-hs-integration.public-contract.diagnostics.supported-property print flushes and preserves the caller handle",
"rdkafka-hs-integration.public-contract.diagnostics.client print flushes and preserves the caller handle",
"rdkafka-hs-integration.public-contract.diagnostics.failed fdopen releases the duplicate and preserves the original",
"rdkafka-hs-integration.public-contract.diagnostics.failed native flush is reported after closing the duplicate",
"rdkafka-hs-integration.public-contract.diagnostics.producer configuration dumps retain exact explicit and global settings",
"rdkafka-hs-integration.public-contract.diagnostics.producer constructor log level overrides the global property on the native client",
"rdkafka-hs-integration.public-contract.diagnostics.consumer configuration dump preserves global settings after subscription merge",
"rdkafka-hs-integration.public-contract.diagnostics.native dump counter detects an unreleased array",
"rdkafka-hs-integration.public-contract.diagnostics.global cancellation at native acquisition releases its array",
"rdkafka-hs-integration.public-contract.diagnostics.topic cancellation at native acquisition releases its array",
"rdkafka-hs-integration.public-contract.input-boundaries.async assign rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async pause rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async resume rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async store rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async store-message rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async commit rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async commit-message rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async committed rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async position rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async legacy-seek rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async seek rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async timestamp rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async watermark rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.async assign rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async pause rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async resume rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async store rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async store-message rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async commit rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async commit-message rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async committed rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async position rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async legacy-seek rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async seek rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async timestamp rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async watermark rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async assign rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async pause rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async resume rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async store rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async store-message rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async commit rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async commit-message rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async committed rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async position rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async legacy-seek rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async seek rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async timestamp rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async watermark rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync assign rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync pause rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync resume rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync store rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync store-message rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync commit rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync commit-message rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync committed rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync position rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync legacy-seek rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync seek rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync timestamp rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync watermark rejects nul-topic",
"rdkafka-hs-integration.public-contract.input-boundaries.sync assign rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync pause rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync resume rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync store rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync store-message rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync commit rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync commit-message rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync committed rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync position rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync legacy-seek rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync seek rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync timestamp rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync watermark rejects overflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync assign rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync pause rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync resume rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync store rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync store-message rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync commit rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync commit-message rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync committed rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync position rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync legacy-seek rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync seek rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync timestamp rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.sync watermark rejects underflow-partition",
"rdkafka-hs-integration.public-contract.input-boundaries.async string queries and subscription reject NUL before native effects",
"rdkafka-hs-integration.public-contract.input-boundaries.sync string queries and subscription reject NUL before native effects",
"rdkafka-hs-integration.public-contract.deprecated-runners.producer flushes after Returned",
"rdkafka-hs-integration.public-contract.deprecated-runners.producer flushes after Refused",
"rdkafka-hs-integration.public-contract.deprecated-runners.producer flushes after Thrown",
"rdkafka-hs-integration.public-contract.deprecated-runners.async consumer closes after Returned",
"rdkafka-hs-integration.public-contract.deprecated-runners.async consumer closes after Refused",
"rdkafka-hs-integration.public-contract.deprecated-runners.async consumer closes after Thrown",
"rdkafka-hs-integration.public-contract.deprecated-runners.sync consumer closes after Returned",
"rdkafka-hs-integration.public-contract.deprecated-runners.sync consumer closes after Refused",
"rdkafka-hs-integration.public-contract.deprecated-runners.sync consumer closes after Thrown",
"rdkafka-hs-integration.public-contract.deprecated-runners.producer preserves native construction failure without invoking handler",
"rdkafka-hs-integration.public-contract.deprecated-runners.producer preserves configuration exceptions without invoking handler",
"rdkafka-hs-integration.public-contract.deprecated-runners.async consumer preserves native construction failure",
"rdkafka-hs-integration.public-contract.deprecated-runners.async consumer preserves configuration construction failure",
"rdkafka-hs-integration.public-contract.deprecated-runners.sync consumer preserves native construction failure",
"rdkafka-hs-integration.public-contract.deprecated-runners.sync consumer preserves configuration construction failure",
"rdkafka-hs-integration.public-contract.fatal.async",
"rdkafka-hs-integration.public-contract.fatal.sync",
"rdkafka-hs-integration.public-contract.queue event.empty pipes are idle but invalid descriptor errors are preserved",
"rdkafka-hs-integration.public-contract.queue event.async.wakes an idle consumer and stays quiet once disabled",
"rdkafka-hs-integration.public-contract.queue event.async.finds records queued before it was enabled, then rearms",
"rdkafka-hs-integration.public-contract.queue event.async.one wake-up covers several records, then rearms",
"rdkafka-hs-integration.public-contract.queue event.async.binary payloads retain every byte and empty payloads preserve records",
"rdkafka-hs-integration.public-contract.queue event.async.native record errors are never treated as idle",
"rdkafka-hs-integration.public-contract.queue event.async.close stops notifications and keeps caller descriptors open",
"rdkafka-hs-integration.public-contract.queue event.async.destroy stops notifications and keeps caller descriptors open",
"rdkafka-hs-integration.public-contract.queue event.sync.wakes an idle consumer and stays quiet once disabled",
"rdkafka-hs-integration.public-contract.queue event.sync.finds records queued before it was enabled, then rearms",
"rdkafka-hs-integration.public-contract.queue event.sync.one wake-up covers several records, then rearms",
"rdkafka-hs-integration.public-contract.queue event.sync.binary payloads retain every byte and empty payloads preserve records",
"rdkafka-hs-integration.public-contract.queue event.sync.native record errors are never treated as idle",
"rdkafka-hs-integration.public-contract.queue event.sync.close stops notifications and keeps caller descriptors open",
"rdkafka-hs-integration.public-contract.queue event.sync.destroy stops notifications and keeps caller descriptors open",
"rdkafka-hs-integration.public-contract.runtime-contract.RTS capability is observed by async construction",
"rdkafka-hs-integration.public-contract.runtime-contract.explicit async construction checks the runtime",
"rdkafka-hs-integration.public-contract.runtime-contract.sync subscription delivers an exact record",
"rdkafka-hs-integration.public-contract.runtime-contract.deprecated sync runner closes after an exact record",
"rdkafka-hs-integration.public-contract.metadata-contract.native metadata counter detects an unreleased result",
"rdkafka-hs-integration.public-contract.metadata-contract.native topic-constructor failure survives metadata convenience queries",
"rdkafka-hs-integration.public-contract.metadata-contract.empty native metadata remains empty and releases every result",
"rdkafka-hs-integration.public-contract.metadata-contract.timestamp lookup preserves native overall errors",
"rdkafka-hs-integration.public-contract.metadata-contract.watermark queries preserve unknown partition errors and empty provided metadata",
"rdkafka-hs-integration.public-contract.metadata-contract.topic identity replica sets and exact watermarks",
"rdkafka-hs-integration.public-contract.metadata-contract.distinct native metadata fields retain exact identities and errors",
"rdkafka-hs-integration.public-contract.metadata-contract.provided metadata preserves partition failures in convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.native metadata partition failures survive convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.group query timeout preserves initial metadata wait failure",
"rdkafka-hs-integration.public-contract.metadata-contract.missing topic errors survive convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.timestamp lookup distinguishes before at and after actual record times",
"rdkafka-hs-integration.public-contract.metadata-contract.mixed timestamp request preserves native partition failure",
"rdkafka-hs-integration.public-contract.metadata-contract.metadata timeouts preserve the native error",
"rdkafka-hs-integration.public-contract.metadata-contract.metadata native acquisition cancellation releases its result",
"rdkafka-hs-integration.public-contract.metadata-contract.groups native acquisition cancellation releases its result",
"rdkafka-hs-integration.public-contract.metadata-contract.async group identity lifecycle and supported native states",
"rdkafka-hs-integration.public-contract.metadata-contract.sync group identity lifecycle and supported native states",
"rdkafka-hs-integration.public-contract.config-strings.producer global rejects NUL key",
"rdkafka-hs-integration.public-contract.config-strings.producer global rejects NUL value",
"rdkafka-hs-integration.public-contract.config-strings.producer topic rejects NUL key",
"rdkafka-hs-integration.public-contract.config-strings.producer topic rejects NUL value",
"rdkafka-hs-integration.public-contract.config-strings.async consumer global rejects NUL key",
"rdkafka-hs-integration.public-contract.config-strings.async consumer global rejects NUL value",
"rdkafka-hs-integration.public-contract.config-strings.sync consumer global rejects NUL key",
"rdkafka-hs-integration.public-contract.config-strings.sync consumer global rejects NUL value",
"rdkafka-hs-integration.public-contract.config-strings.async subscription rejects NUL key",
"rdkafka-hs-integration.public-contract.config-strings.async subscription rejects NUL value",
"rdkafka-hs-integration.public-contract.config-strings.sync subscription rejects NUL key",
"rdkafka-hs-integration.public-contract.config-strings.sync subscription rejects NUL value",
"rdkafka-hs-integration.public-contract.config-strings.empty producer client id retains the native default",
"rdkafka-hs-integration.public-contract.config-strings.consumer ordinary UTF8 values remain exact",
"rdkafka-hs-integration.public-contract.config-strings.empty global key retains native unknown-key rejection",
"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",
"rdkafka-hs-integration.broker.Per-message commit.1. sends 2 messages to test topic",
"rdkafka-hs-integration.broker.Per-message commit.2. should receive 2 messages",
"rdkafka-hs-integration.broker.Per-message commit.3. sends 2 messages to test topic",
"rdkafka-hs-integration.broker.Per-message commit.4. should receive 2 messages again",
"rdkafka-hs-integration.broker.Store offsets.1. sends 2 messages to test topic",
"rdkafka-hs-integration.broker.Store offsets.2. should receive 2 messages without storing",
"rdkafka-hs-integration.broker.Store offsets.3. sends 2 messages to test topic",
"rdkafka-hs-integration.broker.Store offsets.4. should receive 4 messages and store them",
"rdkafka-hs-integration.broker.Store offsets.5. sends 2 messages to test topic",
"rdkafka-hs-integration.broker.Store offsets.6. should receive 2 messages",
"rdkafka-hs-integration.broker.Store offsets.Part 3 - Consume after committing stored offsets.5. sends 2 messages to test topic",
"rdkafka-hs-integration.broker.Store offsets.Part 3 - Consume after committing stored offsets.6. should receive 2 messages",
"rdkafka-hs-integration.broker.Consumer.Run producer.sends messages to test topic",
"rdkafka-hs-integration.broker.Consumer.Run producer.sends messages with callback to test topic",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should receive messages",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should get committed",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should get position",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should get watermark offsets",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should return subscription",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should return assignment",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.assignment is not lost",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should return all topics metadata",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should return topic metadata",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should describe all consumer groups",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should describe a given consumer group",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should describe non-existent consumer group",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should read topic offsets for time",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should seek and return no error",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should seek to the beginning",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should seek to the end",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should respect out-of-bound offsets (invalid offset)",
"rdkafka-hs-integration.broker.Consumer.Run consumer with async polling.should respect out-of-bound offsets (huge offset)",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should receive messages",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should get committed",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should get position",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should get watermark offsets",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should return subscription",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should return assignment",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.assignment is not lost",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should return all topics metadata",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should return topic metadata",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should describe all consumer groups",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should describe a given consumer group",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should describe non-existent consumer group",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should read topic offsets for time",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should seek and return no error",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should seek to the beginning",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should seek to the end",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should respect out-of-bound offsets (invalid offset)",
"rdkafka-hs-integration.broker.Consumer.Run consumer with sync polling.should respect out-of-bound offsets (huge offset)",
"rdkafka-hs-integration.broker.Batch consumer.should consume first batch",
"rdkafka-hs-integration.broker.Batch consumer.should consume second batch with not enough messages",
"rdkafka-hs-integration.broker.Batch consumer.should consume empty batch when there are no messages",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage sync.interleaved duplicate names keep wire order and last values",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage sync.distinct names keep wire order",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage sync.identical repeated pairs are not deduplicated",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage sync.a single header round-trips",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage sync.no headers decode as an empty list",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage async.interleaved duplicate names keep wire order and last values",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage async.distinct names keep wire order",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage async.identical repeated pairs are not deduplicated",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage async.a single header round-trips",
"rdkafka-hs-integration.broker.Headers wire order.pollMessage async.no headers decode as an empty list",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed sync.interleaved duplicate names keep wire order and last values",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed sync.distinct names keep wire order",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed sync.identical repeated pairs are not deduplicated",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed sync.a single header round-trips",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed sync.no headers decode as an empty list",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed async.interleaved duplicate names keep wire order and last values",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed async.distinct names keep wire order",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed async.identical repeated pairs are not deduplicated",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed async.a single header round-trips",
"rdkafka-hs-integration.broker.Headers wire order.pollMessageAttributed async.no headers decode as an empty list",
"rdkafka-hs-integration.broker.assign-only.async.newAssignedConsumer",
"rdkafka-hs-integration.broker.assign-only.async.newConsumer with an empty subscription",
"rdkafka-hs-integration.broker.assign-only.sync.newAssignedConsumer",
"rdkafka-hs-integration.broker.assign-only.sync.newConsumer with an empty subscription",
"rdkafka-hs-integration.broker.attributed.async",
"rdkafka-hs-integration.broker.attributed.sync",
"rdkafka-hs-integration.broker.destroy.async.closes broker connections within one second",
"rdkafka-hs-integration.broker.destroy.async.is safe to repeat",
"rdkafka-hs-integration.broker.destroy.async.concurrent destroys both return after cleanup",
"rdkafka-hs-integration.broker.destroy.async.completes after an interrupted destroy",
"rdkafka-hs-integration.broker.destroy.async.close then destroy, destroy then close",
"rdkafka-hs-integration.broker.destroy.sync.closes broker connections within one second",
"rdkafka-hs-integration.broker.destroy.sync.is safe to repeat",
"rdkafka-hs-integration.broker.destroy.sync.concurrent destroys both return after cleanup",
"rdkafka-hs-integration.broker.destroy.sync.completes after an interrupted destroy",
"rdkafka-hs-integration.broker.destroy.sync.close then destroy, destroy then close",
"rdkafka-hs-integration.broker.read_committed watermark stops before an open transaction",
"rdkafka-hs-integration.broker.observer.async",
"rdkafka-hs-integration.broker.observer.sync",
"rdkafka-hs-integration.broker.Read all topics.should create a topic",
"rdkafka-hs-integration.broker.Read all topics.should return all the topics",
"rdkafka-hs-integration.broker.Read all topics.should delete this run's topics"
],
"passed": 831,
"artifacts": {
"normal": {
"path": "dist-compatibility/expanded-source9/primary-normal9.log",
"sha256": "0cc78933babadbb7d223879eb76ddd60513010cfab5cd282a0e4ee974a52faeb"
},
"mapped": {
"path": "dist-compatibility/expanded-source9/primary-mapped9.log",
"sha256": "563e4fcf86cd2047cea629df6837a502e4795dca676f96671655b9758eacf6c8"
},
"allow_open": {
"path": "dist-compatibility/expanded-source9/coverage-allow-open.log",
"sha256": "6aaeb4a62ef5152f0f1adf20bb654b54b8fe12f057b757150972ebe61992fb7a"
},
"strict": {
"path": "dist-compatibility/expanded-source9/coverage-strict.log",
"sha256": "542cc685cf514e26aec1535c91dba78ce90b78baacf3eebe98e98afc47a43222"
},
"tooling": {
"path": "dist-compatibility/expanded-source9/coverage-tools.log",
"sha256": "d9301ebe380dc7a7bd690c77c4421a8314098575c7200305f60c5fb093bc118a"
},
"measured": {
"path": "dist-compatibility/expanded-source9/primary-measured9-with-contexts.json",
"sha256": "9a98d410cbeb3ef8ce0e3d99f39d989dbf145ee434db9aedf7aa771c52922ffe"
}
},
"limitations": [
"857 aggregate registrations include 26 separately executed external cases; primary normal/mapped each executes 831."
]
},
{
"id": "native-invalid-access-complement",
"required": true,
"status": "passed",
"command": [
"/Users/shinzui/Keikaku/bokuno/rdkafka-hs/dist-compatibility/expanded-source9/darwin-native-candidate",
"-p",
"/producer-regressions/ || /callback-lifetime/ || (/public-contract/ && (/messages/ || /partition-list-ownership/ || /metadata-contract/ || /diagnostics/)) || /transaction-errors/ || /lifecycle/",
"+RTS",
"-N2",
"-RTS"
],
"tests": [
"rdkafka-hs-integration.callback-lifetime.async throwing error callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing log callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing stats callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing rebalance callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing commit callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing error callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing log callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing stats callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing rebalance callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing commit callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.sync error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.producer delivery callback releases after native finalization",
"rdkafka-hs-integration.callback-lifetime.noncaptured control is collectible",
"rdkafka-hs-integration.callback-lifetime.async log callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.async stats callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.sync log callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.sync stats callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: topic",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: native",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: redirect",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: subscribe",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: topic",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: native",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: redirect",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: subscribe",
"rdkafka-hs-integration.callback-lifetime.producer native construction failure releases callbacks",
"rdkafka-hs-integration.callback-lifetime.async constructor exception at callback-install releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.async constructor exception at post-native-loglevel releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.sync constructor exception at callback-install releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.sync constructor exception at post-native-loglevel releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.async rebalance callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.async commit callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.sync rebalance callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.sync commit callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.replaced producer delivery callbacks both release",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native entry",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native completion",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native shutdown callback",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native entry",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native completion",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native shutdown callback",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native entry preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native completion preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native shutdown callback preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native entry preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native completion preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native shutdown callback preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation after poll stop and queue detachment preserves teardown",
"rdkafka-hs-integration.callback-lifetime.producer constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.producer constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-async constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-async constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-sync constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-sync constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.async cancellation while waiting for active callback permits retry",
"rdkafka-hs-integration.callback-lifetime.sync cancellation while waiting for active callback permits retry",
"rdkafka-hs-integration.callback-lifetime.async closed consumer GC releases its registrations once",
"rdkafka-hs-integration.callback-lifetime.sync closed consumer GC releases its registrations once",
"rdkafka-hs-integration.callback-lifetime.producer error callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.producer log callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.producer stats callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.failed native construction releases the caller-owned duplicate config",
"rdkafka-hs-integration.transaction-errors.transaction-error-leak-probe releases 300 immediate native errors",
"rdkafka-hs-integration.transaction-errors.native allocation control detects the inherited three-error leak",
"rdkafka-hs-integration.transaction-errors.initialization timeout destroys its native error on each retry",
"rdkafka-hs-integration.transaction-errors.zero-timeout initialization resumes successfully against the broker",
"rdkafka-hs-integration.transaction-errors.transaction state errors preserve empty commit and abort recovery",
"rdkafka-hs-integration.transaction-errors.duplicate transactional IDs report a real fatal fencing error",
"rdkafka-hs-integration.transaction-errors.broker-rejected delivery requires abort and permits a successful new transaction",
"rdkafka-hs-integration.transaction-errors.init without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.begin without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.abort without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.commit without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.offset without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.init NULL return remains success",
"rdkafka-hs-integration.transaction-errors.begin NULL return remains success",
"rdkafka-hs-integration.transaction-errors.abort NULL return remains success",
"rdkafka-hs-integration.transaction-errors.commit NULL return remains success",
"rdkafka-hs-integration.transaction-errors.offset NULL return remains success",
"rdkafka-hs-integration.transaction-errors.init invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.begin invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.abort invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.commit invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.offset invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 0 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 1 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 2 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 3 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 4 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 5 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 6 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 7 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 0 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 1 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 2 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 3 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 4 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 5 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 6 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 7 before destruction",
"rdkafka-hs-integration.transaction-errors.init cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.begin cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.abort cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 21 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 22 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 23 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 21 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 22 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 23 releases once",
"rdkafka-hs-integration.transaction-errors.async commit publishes output and source next offset atomically; abort publishes neither",
"rdkafka-hs-integration.transaction-errors.sync commit publishes output and source next offset atomically; abort publishes neither",
"rdkafka-hs-integration.lifecycle.flushProducerTimeout times out, purgeProducer empties the queue",
"rdkafka-hs-integration.lifecycle.consumerClosed is False until closeConsumer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials replaces credentials on a consumer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials replaces credentials on a producer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials rejects NUL in username without changing producer or consumer identity",
"rdkafka-hs-integration.lifecycle.setSaslCredentials rejects NUL in password without changing producer or consumer identity",
"rdkafka-hs-integration.lifecycle.setSaslCredentials releases each actual native error after decoding its exact code",
"rdkafka-hs-integration.lifecycle.setSaslCredentials cancellation at error decoding releases the owned error",
"rdkafka-hs-integration.lifecycle.setSaslCredentials cancellation at error acquisition releases the owned error",
"rdkafka-hs-integration.producer-regressions.explicit topic timeout expires an accepted message",
"rdkafka-hs-integration.producer-regressions.global timeout still expires an accepted message",
"rdkafka-hs-integration.producer-regressions.queue-full rejection releases callback capture without invoking it",
"rdkafka-hs-integration.producer-regressions.accepted callback retains its capture until a purged report completes",
"rdkafka-hs-integration.producer-regressions.throwing global callback preserves per-message delivery and releases capture",
"rdkafka-hs-integration.producer-regressions.throwing per-message callback reports exception and releases capture",
"rdkafka-hs-integration.producer-regressions.repeated queue-full rejections release every callback capture",
"rdkafka-hs-integration.producer-regressions.cancellation at a rejected enqueue releases capture before unmasking",
"rdkafka-hs-integration.producer-regressions.cancellation after native acceptance retains callback until its report",
"rdkafka-hs-integration.producer-regressions.another poller can deliver before successful enqueue returns",
"rdkafka-hs-integration.producer-regressions.running callback keeps its capture after the native root is released",
"rdkafka-hs-integration.producer-regressions.native error decoding failure releases rejected callback capture",
"rdkafka-hs-integration.producer-regressions.non-null native success-code error rejects and releases capture",
"rdkafka-hs-integration.producer-regressions.unknown native error code is preserved instead of reading errno",
"rdkafka-hs-integration.producer-regressions.actual client configuration: defaults",
"rdkafka-hs-integration.producer-regressions.actual client configuration: global only",
"rdkafka-hs-integration.producer-regressions.actual client configuration: topic only",
"rdkafka-hs-integration.producer-regressions.actual client configuration: disjoint maps",
"rdkafka-hs-integration.producer-regressions.actual client configuration: explicit topic wins duplicate",
"rdkafka-hs-integration.producer-regressions.actual client configuration: last topic property wins",
"rdkafka-hs-integration.producer-regressions.actual client configuration: empty topic map preserves global",
"rdkafka-hs-integration.producer-regressions.actual client configuration: zero topic timeout is infinite",
"rdkafka-hs-integration.producer-regressions.actual client configuration: maximum native topic timeout",
"rdkafka-hs-integration.producer-regressions.actual client configuration: explicit topic wins native timeout alias",
"rdkafka-hs-integration.producer-regressions.actual client configuration: topic codec overrides global codec",
"rdkafka-hs-integration.producer-regressions.actual client configuration: global codec survives unrelated topic keys",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with NoCompression",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Gzip",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Snappy",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Lz4",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Zstd",
"rdkafka-hs-integration.producer-regressions.queued purge flags: none",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue",
"rdkafka-hs-integration.producer-regressions.queued purge flags: inflight",
"rdkafka-hs-integration.producer-regressions.queued purge flags: nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue+inflight",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue+nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: inflight+nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: all",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: none",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: inflight",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue+inflight",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue+nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: inflight+nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: all",
"rdkafka-hs-integration.producer-regressions.bounded flush timeout recovers when the delayed response arrives",
"rdkafka-hs-integration.producer-regressions.close retries a timed-out flush until the delayed delivery completes",
"rdkafka-hs-integration.producer-regressions.oversized rejection releases capture without a delivery report",
"rdkafka-hs-integration.producer-regressions.known invalid partition rejection releases capture",
"rdkafka-hs-integration.producer-regressions.empty queue supports repeated flush and close",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: NUL topic name",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: NUL header name",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: maximum unrepresentable partition",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: minimum unrepresentable partition",
"rdkafka-hs-integration.producer-regressions.configuration rejection: unknown global key",
"rdkafka-hs-integration.producer-regressions.configuration rejection: unknown topic key",
"rdkafka-hs-integration.producer-regressions.configuration rejection: invalid topic timeout",
"rdkafka-hs-integration.producer-regressions.configuration rejection: excessive topic timeout",
"rdkafka-hs-integration.producer-regressions.configuration rejection: global-only key in topic map",
"rdkafka-hs-integration.producer-regressions.later delivery callback replaces the earlier callback",
"rdkafka-hs-integration.producer-regressions.null native delivery frame reports the generic errno fallback without dereferencing a message",
"rdkafka-hs-integration.producer-regressions.native delivery without an opaque Haskell callback preserves the complete record",
"rdkafka-hs-integration.producer-regressions.delivery header acquisition failure preserves the outcome with empty headers",
"rdkafka-hs-integration.public-contract.partition-list-ownership.counter detects a retained native list before explicit release",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.pair conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.offset conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.ordinary input lists release after exact native results",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.missing native partition queue preserves assignment and later forwarding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.assignment outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription acquisition failure preserves the native error without a list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.assignment decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.cancellation at input allocation releases the owned list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.cancellation at assignment return releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.pair conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.offset conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.ordinary input lists release after exact native results",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.missing native partition queue preserves assignment and later forwarding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.assignment outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription acquisition failure preserves the native error without a list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.assignment decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.cancellation at input allocation releases the owned list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.cancellation at assignment return releases the owned output",
"rdkafka-hs-integration.public-contract.messages.batch conversion releases every returned native message",
"rdkafka-hs-integration.public-contract.messages.native message counter detects a retained final object",
"rdkafka-hs-integration.public-contract.messages.batch decoder exception releases unprocessed messages",
"rdkafka-hs-integration.public-contract.messages.batch native header errors remain errors while later records are released",
"rdkafka-hs-integration.public-contract.messages.batch cancellation at native return releases every acquired message",
"rdkafka-hs-integration.public-contract.messages.batch cancellation at middle conversion releases every acquired message",
"rdkafka-hs-integration.public-contract.messages.async single cancellation at native return releases its native message",
"rdkafka-hs-integration.public-contract.messages.async single cancellation at inside conversion releases its native message",
"rdkafka-hs-integration.public-contract.messages.sync single cancellation at native return releases its native message",
"rdkafka-hs-integration.public-contract.messages.sync single cancellation at inside conversion releases its native message",
"rdkafka-hs-integration.public-contract.messages.async header failure preserves the polled record origin",
"rdkafka-hs-integration.public-contract.messages.sync header failure preserves the polled record origin",
"rdkafka-hs-integration.public-contract.messages.async plain polling surfaces native header failure",
"rdkafka-hs-integration.public-contract.messages.sync plain polling surfaces native header failure",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent partition-and-offset",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent offset",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent partition",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent partition-and-offset",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent offset",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent partition",
"rdkafka-hs-integration.public-contract.messages.callback-event polling cancellation releases a returned message",
"rdkafka-hs-integration.public-contract.messages.callback buffer preserves attributed header failure",
"rdkafka-hs-integration.public-contract.messages.callback buffer preserves plain header failure",
"rdkafka-hs-integration.public-contract.messages.originless callback error survives seek filtering and a paused partition",
"rdkafka-hs-integration.public-contract.messages.callback-event polling releases and discards a returned fatal frame",
"rdkafka-hs-integration.public-contract.messages.zero batch size leaves the queued records available",
"rdkafka-hs-integration.public-contract.messages.unsupported sync batch does not discard a record",
"rdkafka-hs-integration.public-contract.messages.signed native batch failure preserves its error and queued data",
"rdkafka-hs-integration.public-contract.messages.infinite batch timeout returns available records",
"rdkafka-hs-integration.public-contract.messages.batch capacity 1 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 2 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 5 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: -1",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: -9223372036854775808",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: 9223372036854775807",
"rdkafka-hs-integration.public-contract.messages.batch preserves complete records followed by exact partition EOF and idle timeout",
"rdkafka-hs-integration.public-contract.messages.empty batch respects timeout 0",
"rdkafka-hs-integration.public-contract.messages.empty batch respects timeout 100",
"rdkafka-hs-integration.public-contract.diagnostics.supported-property print flushes and preserves the caller handle",
"rdkafka-hs-integration.public-contract.diagnostics.client print flushes and preserves the caller handle",
"rdkafka-hs-integration.public-contract.diagnostics.failed fdopen releases the duplicate and preserves the original",
"rdkafka-hs-integration.public-contract.diagnostics.failed native flush is reported after closing the duplicate",
"rdkafka-hs-integration.public-contract.diagnostics.producer configuration dumps retain exact explicit and global settings",
"rdkafka-hs-integration.public-contract.diagnostics.producer constructor log level overrides the global property on the native client",
"rdkafka-hs-integration.public-contract.diagnostics.consumer configuration dump preserves global settings after subscription merge",
"rdkafka-hs-integration.public-contract.diagnostics.native dump counter detects an unreleased array",
"rdkafka-hs-integration.public-contract.diagnostics.global cancellation at native acquisition releases its array",
"rdkafka-hs-integration.public-contract.diagnostics.topic cancellation at native acquisition releases its array",
"rdkafka-hs-integration.public-contract.metadata-contract.native metadata counter detects an unreleased result",
"rdkafka-hs-integration.public-contract.metadata-contract.native topic-constructor failure survives metadata convenience queries",
"rdkafka-hs-integration.public-contract.metadata-contract.empty native metadata remains empty and releases every result",
"rdkafka-hs-integration.public-contract.metadata-contract.timestamp lookup preserves native overall errors",
"rdkafka-hs-integration.public-contract.metadata-contract.watermark queries preserve unknown partition errors and empty provided metadata",
"rdkafka-hs-integration.public-contract.metadata-contract.topic identity replica sets and exact watermarks",
"rdkafka-hs-integration.public-contract.metadata-contract.distinct native metadata fields retain exact identities and errors",
"rdkafka-hs-integration.public-contract.metadata-contract.provided metadata preserves partition failures in convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.native metadata partition failures survive convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.group query timeout preserves initial metadata wait failure",
"rdkafka-hs-integration.public-contract.metadata-contract.missing topic errors survive convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.timestamp lookup distinguishes before at and after actual record times",
"rdkafka-hs-integration.public-contract.metadata-contract.mixed timestamp request preserves native partition failure",
"rdkafka-hs-integration.public-contract.metadata-contract.metadata timeouts preserve the native error",
"rdkafka-hs-integration.public-contract.metadata-contract.metadata native acquisition cancellation releases its result",
"rdkafka-hs-integration.public-contract.metadata-contract.groups native acquisition cancellation releases its result",
"rdkafka-hs-integration.public-contract.metadata-contract.async group identity lifecycle and supported native states",
"rdkafka-hs-integration.public-contract.metadata-contract.sync group identity lifecycle and supported native states"
],
"passed": 279,
"artifacts": {
"darwin-asan-control.log": {
"path": "dist-compatibility/expanded-source9/darwin-asan-control.log",
"sha256": "7d3f29e4f75b0cb43aff9c863c81300e2851c4f2b8c958b4bf8c9113b8fb00ee"
},
"darwin-asan-candidate.log": {
"path": "dist-compatibility/expanded-source9/darwin-asan-candidate.log",
"sha256": "bed5ff95177992d5ec812468fa79432c938c50d61928bb88344f2a951a4b8d36"
},
"darwin-native-receipt.json": {
"path": "dist-compatibility/expanded-source9/darwin-native-receipt.json",
"sha256": "ab74ca68a62aa0a601d7d8f6782807c46fe5437bc102430b85ea79360bbb0b83"
}
},
"limitations": [
"Matched Apple clang AddressSanitizer native runtime; deliberate invalid access aborts and candidate has no findings. Leak detection disabled: no Darwin leak-freedom claim."
]
}
],
"artifacts": {
"measured": {
"path": "docs/testing/coverage-evidence.json",
"sha256": "9a98d410cbeb3ef8ce0e3d99f39d989dbf145ee434db9aedf7aa771c52922ffe"
}
},
"evidence": "docs/testing/deferred-public-contract-evidence.json"
},
{
"id": "linux-arm64-ghc9141-native2160-apache440",
"owner": 17,
"required": true,
"status": "passed",
"source": {
"project": "mori://shinzui/rdkafka-hs",
"candidate_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c",
"execution_fingerprint": "74c7156e6fee8653bcec844001fd8f95d703bcf4d8e978a857a9f8f3560b6b0a",
"revision": "bfa4f2e plus captured source",
"archive": {
"path": "dist-compatibility/expanded-source9/candidate.tar.gz",
"sha256": "a70e4839d24c5e5179ff9a8be48643951e185d604cd8ba3401587730279f3b22"
},
"root_file_inventory": {
"path": "dist-compatibility/expanded-source9/root-functional-files.json",
"sha256": "69506c90cfc124f3a175a664873f5d8b49aff62a7426265c56c3dd64fcc84c21"
},
"archive_file_inventory": {
"path": "dist-compatibility/expanded-source9/phase9-functional-files.json",
"sha256": "d0e5d59aa49833ecd1305410c839cbebdbbb418679cecc6de0c2548b142dca4b"
},
"archive_comparison": {
"changed_files": [],
"added_files": [],
"omitted_development_files": [
".envrc",
"cabal.project",
"flake.lock",
"flake.module.nix",
"flake.nix",
"justfile",
"nix/haskell.nix",
"nix/pre-commit.nix",
"nix/redpanda.nix",
"nix/treefmt.nix"
],
"omitted_project_configuration": {
"path": "cabal.project",
"content": "packages: .\n",
"replacement": "Cabal implicit single package in clean extraction; same package set, no solver/compiler constraints in omitted file"
},
"execution_fingerprint": "74c7156e6fee8653bcec844001fd8f95d703bcf4d8e978a857a9f8f3560b6b0a",
"root_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c"
},
"configuration_sha256": "c6c0771e7da58c35d40170db3ec18cdd2439997e223ef4c088ac3f4e793707f9"
},
"environment": {
"os": "PRETTY_NAME=\"Ubuntu 24.04.5 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"\nVERSION=\"24.04.5 LTS (Noble Numbat)\"\nVERSION_CODENAME=noble\nID=ubuntu\nID_LIKE=debian\nHOME_URL=\"https://www.ubuntu.com/\"\nSUPPORT_URL=\"https://help.ubuntu.com/\"\nBUG_REPORT_URL=\"https://bugs.launchpad.net/ubuntu/\"\nPRIVACY_POLICY_URL=\"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy\"\nUBUNTU_CODENAME=noble\nLOGO=ubuntu-logo",
"kernel": "Linux 6.18.15",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"java": "openjdk 21.0.12.1 2026-08-18\nOpenJDK Runtime Environment (build 21.0.12.1+1-1-24.04.4-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12.1+1-1-24.04.4-Ubuntu, mixed mode, sharing)",
"native_version": "2.16.0",
"broker_version": "Apache Kafka 4.4.0",
"loaded_native_identity": {
"observed": "(\"2.16.0\",34603263)",
"path": "/opt/librdkafka-2.16.0/lib/librdkafka.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f"
},
"broker_topology": "Three owned combined broker/controllers for inherited cases; separate ephemeral three-node fault and one-node secure fixtures. RF3/min ISR2 on fault topics."
},
"test_configuration": {
"compiler": "GHC 9.14.1",
"native_standard": "2.16.0",
"broker": "Apache Kafka 4.4.0",
"kafka_home": "/opt/kafka_2.13-4.4.0",
"cabal_flags": [
"examples",
"integration"
],
"fixture_processes": {
"broker": 3,
"security": 1
},
"broker_callback_modes": [
"async",
"sync"
],
"protocols": [
"range",
"cooperative-sticky"
],
"replicated_failure_topics": {
"replication": 3,
"min_ISR": 2
},
"security": "SASL/PLAIN over verified TLS, ephemeral users/ACLs/CA; secrets intentionally absent",
"recipes": {
"test-integration/Kafka/Compatibility/KafkaFixture.hs": "b3ffe1aab36ba7ba8523075383228676c5f4d7e5f837592dbbb32844beab4e1a",
"test-integration/Kafka/Compatibility/SecurityFixture.hs": "bd46bf52a1919dee7042721820365f5765cd8c787a727ee3d9b7a8e541644921",
"test-integration/Kafka/TestEnv.hs": "f82b4306c90317e713f7de107cd7bc281626c04fd7327ae421a49de10b1dc91a"
}
},
"scenarios": [
{
"id": "released-linux-unit-build",
"required": true,
"status": "passed",
"command": [
"cabal",
"test",
"rdkafka-hs-test",
"-f",
"integration",
"--test-show-details=direct",
"--test-options=--quickcheck-tests=1000 --quickcheck-replay=20261024"
],
"tests": [
"rdkafka-hs.Callback owner.bridge allocation executes masked before ownership is recorded",
"rdkafka-hs.Callback owner.installed and replaced bridges release exactly once",
"rdkafka-hs.Callback owner.failed native install still owns its allocated bridge",
"rdkafka-hs.Callback owner.failed allocation has no release",
"rdkafka-hs.Callback owner.transfer preserves a callable bridge until client release",
"rdkafka-hs.Callback owner.transferred and released owners reject reuse before allocating",
"rdkafka-hs.Callback owner.release retry does not repeat completed releases",
"rdkafka-hs.Callback owner.concurrent releases join before returning",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.the poll mode defaults to async",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.properties composed after the poll mode keep it",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.properties composed before the poll mode keep it",
"rdkafka-hs.Kafka.Consumer.ConsumerProperties.a later poll mode overrides an earlier one",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordMapSpec.should extract key",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordMapSpec.should extract value",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordMapSpec.should extract both key and value",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should sequence",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should traverse",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should bisequence",
"rdkafka-hs.Kafka.Consumer.ConsumerRecordTraverseSpec.should bitraverse",
"rdkafka-hs.Kafka.Version.linked librdkafka is at least 2.15.0",
"rdkafka-hs.Kafka.Version.version string agrees with the version number",
"rdkafka-hs.Kafka.Version.decodes the hex version encoding",
"rdkafka-hs.Producer properties generated.program follows last-write semantics",
"rdkafka-hs.Producer properties generated.configuration has left and right identity",
"rdkafka-hs.Producer properties generated.configuration composition is associative",
"rdkafka-hs.Producer properties generated.composition appends writes in order",
"rdkafka-hs.Producer properties generated.unrelated keys survive a conflicting write",
"rdkafka-hs.Producer properties generated.last explicit log level wins",
"rdkafka-hs.Producer properties generated.fixed empty duplicate and binary text values",
"rdkafka-hs.Public properties.consumer composition.consumer program follows independent last-write model",
"rdkafka-hs.Public properties.consumer composition.consumer identity preserves every observable field",
"rdkafka-hs.Public properties.consumer composition.consumer association preserves writes and poll mode",
"rdkafka-hs.Public properties.consumer composition.consumer composition appends programs",
"rdkafka-hs.Public properties.consumer composition.unset poll mode preserves a prior explicit mode",
"rdkafka-hs.Public properties.consumer composition.consumer helpers write exact native property names",
"rdkafka-hs.Public properties.subscription.subscription follows last-write properties and topic union",
"rdkafka-hs.Public properties.subscription.subscription identity and association retain topics and properties",
"rdkafka-hs.Public properties.subscription.subscription composition appends property writes",
"rdkafka-hs.Public properties.subscription.later subscription reset and explicit properties win",
"rdkafka-hs.Public properties.headers.header list round-trip preserves duplicates and binary bytes",
"rdkafka-hs.Public properties.headers.header concatenation follows list order",
"rdkafka-hs.Public properties.headers.headers have two identities and associative concatenation",
"rdkafka-hs.Public properties.headers.fixed duplicate empty and binary header values",
"rdkafka-hs.Public properties.records.record functor identity",
"rdkafka-hs.Public properties.records.record functor composition",
"rdkafka-hs.Public properties.records.record bifunctor identity and composition",
"rdkafka-hs.Public properties.records.record mapping preserves origin timestamp and headers",
"rdkafka-hs.Public properties.records.record traversal identity and failure preserve the applicative contract",
"rdkafka-hs.Public properties.records.record traversal composition preserves nested effects",
"rdkafka-hs.Public properties.records.record bitraversal visits key before value",
"rdkafka-hs.Public properties.records.record bitraversal composition preserves nested effects",
"rdkafka-hs.Public properties.records.record folds retain key and value order",
"rdkafka-hs.Public properties.records.deprecated record mapping remains equivalent",
"rdkafka-hs.Public properties.records.deprecated traversal helpers preserve successful effects",
"rdkafka-hs.Public properties.records.deprecated traversal helpers preserve failed effects",
"rdkafka-hs.Public properties.representations.text newtypes preserve arbitrary represented text",
"rdkafka-hs.Public properties.representations.integer newtypes preserve signed machine boundaries",
"rdkafka-hs.Public properties.representations.offset and milliseconds preserve signed 64-bit boundaries",
"rdkafka-hs.Public properties.representations.timestamp constructors retain their represented boundary",
"rdkafka-hs.Public properties.representations.system topic classification requires two initial underscores",
"rdkafka-hs.Public properties.representations.fixed empty underscore and signed numeric boundaries",
"rdkafka-hs.Public properties.version.version bytes decode independently of prerelease byte",
"rdkafka-hs.Public properties.version.version extraction agrees with arithmetic for every Int",
"rdkafka-hs.Public properties.version.fixed zero and full version byte boundaries",
"rdkafka-hs.Public properties.every compression debug and log enumeration has its native spelling",
"rdkafka-hs.Public data contracts.builders.semigroup defaults retain writes callbacks and subscription union",
"rdkafka-hs.Public data contracts.builders.consumer builders preserve exact settings and leave other fields unset",
"rdkafka-hs.Public data contracts.builders.producer builders preserve global versus explicit topic placement",
"rdkafka-hs.Public data contracts.builders.all codecs have independently specified builder spellings",
"rdkafka-hs.Public data contracts.builders.debug contexts preserve order duplicates and the empty-list identity",
"rdkafka-hs.Public data contracts.representations.numeric ordering and reads agree with represented signed values",
"rdkafka-hs.Public data contracts.representations.numeric instances preserve primitive arithmetic including boundaries",
"rdkafka-hs.Public data contracts.representations.text ordering string conversion reads and generic representations round-trip",
"rdkafka-hs.Public data contracts.representations.consumer variants retain fields and distinguish constructors",
"rdkafka-hs.Public data contracts.representations.producer records delivery variants and topic requests retain exact fields",
"rdkafka-hs.Public data contracts.representations.metadata structures retain identities states members and binary data",
"rdkafka-hs.Public data contracts.representations.every Kafka error preserves its Exception identity and generic form",
"rdkafka-hs.Public data contracts.all linked native errors retain sparse numeric codes names and descriptions"
],
"passed": 78,
"artifacts": {
"phase9-unit.log": {
"path": "dist-compatibility/expanded-source9/phase9-unit.log",
"sha256": "1e9125e7cda4a5a18944f368fde934dc8a4b1900d981189931e1fa0632fe7f09"
},
"phase9-build.log": {
"path": "dist-compatibility/expanded-source9/phase9-build.log",
"sha256": "15848881c353039514fedb23424160586241f4cc00332ac11283b414d901675d"
},
"phase9-package-check.log": {
"path": "dist-compatibility/expanded-source9/phase9-package-check.log",
"sha256": "a19b4064f1acadadad1e1f24beae3785b778a6c5baabde7f333e4dacb7191d30"
},
"phase9-loaded.log": {
"path": "dist-compatibility/expanded-source9/phase9-loaded.log",
"sha256": "0ea352a045eddd425369467d19eef2c60d2ca235538e1335b9557897a003d120"
},
"phase9-version.log": {
"path": "dist-compatibility/expanded-source9/phase9-version.log",
"sha256": "6ec9b644a82e1dd0a2ec1c57250b4e2d3043deb9a608d8384f7ec30026876a93"
}
},
"limitations": []
},
{
"id": "native-ownership-diagnostics",
"required": true,
"status": "passed",
"command": [
"valgrind",
"--suppressions=/evidence/ghc914-rts.supp",
"--error-exitcode=99",
"--leak-check=full",
"--show-leak-kinds=all",
"--errors-for-leak-kinds=definite,indirect",
"--trace-children=yes",
"--log-file=/evidence/native-phase9.%p.valgrind",
"/evidence/native-phase9-binary",
"-p",
"/producer-regressions/ || /callback-lifetime/ || (/public-contract/ && (/messages/ || /partition-list-ownership/ || /metadata-contract/ || /diagnostics/)) || /transaction-errors/ || /lifecycle/",
"+RTS",
"-N2",
"-RTS"
],
"tests": [
"rdkafka-hs-integration.callback-lifetime.async throwing error callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing log callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing stats callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing rebalance callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async throwing commit callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing error callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing log callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing stats callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing rebalance callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.sync throwing commit callback preserves native lifecycle",
"rdkafka-hs-integration.callback-lifetime.async error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.sync error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.producer delivery callback releases after native finalization",
"rdkafka-hs-integration.callback-lifetime.noncaptured control is collectible",
"rdkafka-hs-integration.callback-lifetime.async log callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.async stats callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.sync log callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.sync stats callback is live then releases",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: topic",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: native",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: redirect",
"rdkafka-hs-integration.callback-lifetime.async construction failure releases callbacks: subscribe",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: topic",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: native",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: redirect",
"rdkafka-hs-integration.callback-lifetime.sync construction failure releases callbacks: subscribe",
"rdkafka-hs-integration.callback-lifetime.producer native construction failure releases callbacks",
"rdkafka-hs-integration.callback-lifetime.async constructor exception at callback-install releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.async constructor exception at post-native-loglevel releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.sync constructor exception at callback-install releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.sync constructor exception at post-native-loglevel releases partial native ownership",
"rdkafka-hs-integration.callback-lifetime.async rebalance callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.async commit callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.sync rebalance callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.sync commit callback releases captured borrowed configuration",
"rdkafka-hs-integration.callback-lifetime.replaced producer delivery callbacks both release",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native entry",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native completion",
"rdkafka-hs-integration.callback-lifetime.async concurrent destruction joins at native shutdown callback",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native entry",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native completion",
"rdkafka-hs-integration.callback-lifetime.sync concurrent destruction joins at native shutdown callback",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native entry preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native completion preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation at native shutdown callback preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native entry preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native completion preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.sync cancellation at native shutdown callback preserves exactly-once teardown",
"rdkafka-hs-integration.callback-lifetime.async cancellation after poll stop and queue detachment preserves teardown",
"rdkafka-hs-integration.callback-lifetime.producer constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.producer constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-async constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-async constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-sync constructor cancellation at partial registration releases its owner",
"rdkafka-hs-integration.callback-lifetime.consumer-sync constructor cancellation at native acceptance releases its owner",
"rdkafka-hs-integration.callback-lifetime.async cancellation while waiting for active callback permits retry",
"rdkafka-hs-integration.callback-lifetime.sync cancellation while waiting for active callback permits retry",
"rdkafka-hs-integration.callback-lifetime.async closed consumer GC releases its registrations once",
"rdkafka-hs-integration.callback-lifetime.sync closed consumer GC releases its registrations once",
"rdkafka-hs-integration.callback-lifetime.producer error callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.producer log callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.producer stats callback remains live through close and releases on GC",
"rdkafka-hs-integration.callback-lifetime.failed native construction releases the caller-owned duplicate config",
"rdkafka-hs-integration.transaction-errors.transaction-error-leak-probe releases 300 immediate native errors",
"rdkafka-hs-integration.transaction-errors.native allocation control detects the inherited three-error leak",
"rdkafka-hs-integration.transaction-errors.initialization timeout destroys its native error on each retry",
"rdkafka-hs-integration.transaction-errors.zero-timeout initialization resumes successfully against the broker",
"rdkafka-hs-integration.transaction-errors.transaction state errors preserve empty commit and abort recovery",
"rdkafka-hs-integration.transaction-errors.duplicate transactional IDs report a real fatal fencing error",
"rdkafka-hs-integration.transaction-errors.broker-rejected delivery requires abort and permits a successful new transaction",
"rdkafka-hs-integration.transaction-errors.init without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.begin without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.abort without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.commit without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.offset without transactional ID preserves native code and destroys error",
"rdkafka-hs-integration.transaction-errors.init NULL return remains success",
"rdkafka-hs-integration.transaction-errors.begin NULL return remains success",
"rdkafka-hs-integration.transaction-errors.abort NULL return remains success",
"rdkafka-hs-integration.transaction-errors.commit NULL return remains success",
"rdkafka-hs-integration.transaction-errors.offset NULL return remains success",
"rdkafka-hs-integration.transaction-errors.init invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.begin invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.abort invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.commit invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.offset invalid native code still destroys acquired error",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 0 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 1 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 2 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 3 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 4 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 5 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 6 before destruction",
"rdkafka-hs-integration.transaction-errors.commit copies native flag combination 7 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 0 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 1 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 2 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 3 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 4 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 5 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 6 before destruction",
"rdkafka-hs-integration.transaction-errors.offset copies native flag combination 7 before destruction",
"rdkafka-hs-integration.transaction-errors.init cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.begin cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.abort cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 21 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 22 releases once",
"rdkafka-hs-integration.transaction-errors.commit cancellation at decoder stage 23 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 20 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 21 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 22 releases once",
"rdkafka-hs-integration.transaction-errors.offset cancellation at decoder stage 23 releases once",
"rdkafka-hs-integration.transaction-errors.async commit publishes output and source next offset atomically; abort publishes neither",
"rdkafka-hs-integration.transaction-errors.sync commit publishes output and source next offset atomically; abort publishes neither",
"rdkafka-hs-integration.lifecycle.flushProducerTimeout times out, purgeProducer empties the queue",
"rdkafka-hs-integration.lifecycle.consumerClosed is False until closeConsumer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials replaces credentials on a consumer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials replaces credentials on a producer",
"rdkafka-hs-integration.lifecycle.setSaslCredentials rejects NUL in username without changing producer or consumer identity",
"rdkafka-hs-integration.lifecycle.setSaslCredentials rejects NUL in password without changing producer or consumer identity",
"rdkafka-hs-integration.lifecycle.setSaslCredentials releases each actual native error after decoding its exact code",
"rdkafka-hs-integration.lifecycle.setSaslCredentials cancellation at error decoding releases the owned error",
"rdkafka-hs-integration.lifecycle.setSaslCredentials cancellation at error acquisition releases the owned error",
"rdkafka-hs-integration.producer-regressions.explicit topic timeout expires an accepted message",
"rdkafka-hs-integration.producer-regressions.global timeout still expires an accepted message",
"rdkafka-hs-integration.producer-regressions.queue-full rejection releases callback capture without invoking it",
"rdkafka-hs-integration.producer-regressions.accepted callback retains its capture until a purged report completes",
"rdkafka-hs-integration.producer-regressions.throwing global callback preserves per-message delivery and releases capture",
"rdkafka-hs-integration.producer-regressions.throwing per-message callback reports exception and releases capture",
"rdkafka-hs-integration.producer-regressions.repeated queue-full rejections release every callback capture",
"rdkafka-hs-integration.producer-regressions.cancellation at a rejected enqueue releases capture before unmasking",
"rdkafka-hs-integration.producer-regressions.cancellation after native acceptance retains callback until its report",
"rdkafka-hs-integration.producer-regressions.another poller can deliver before successful enqueue returns",
"rdkafka-hs-integration.producer-regressions.running callback keeps its capture after the native root is released",
"rdkafka-hs-integration.producer-regressions.native error decoding failure releases rejected callback capture",
"rdkafka-hs-integration.producer-regressions.non-null native success-code error rejects and releases capture",
"rdkafka-hs-integration.producer-regressions.unknown native error code is preserved instead of reading errno",
"rdkafka-hs-integration.producer-regressions.actual client configuration: defaults",
"rdkafka-hs-integration.producer-regressions.actual client configuration: global only",
"rdkafka-hs-integration.producer-regressions.actual client configuration: topic only",
"rdkafka-hs-integration.producer-regressions.actual client configuration: disjoint maps",
"rdkafka-hs-integration.producer-regressions.actual client configuration: explicit topic wins duplicate",
"rdkafka-hs-integration.producer-regressions.actual client configuration: last topic property wins",
"rdkafka-hs-integration.producer-regressions.actual client configuration: empty topic map preserves global",
"rdkafka-hs-integration.producer-regressions.actual client configuration: zero topic timeout is infinite",
"rdkafka-hs-integration.producer-regressions.actual client configuration: maximum native topic timeout",
"rdkafka-hs-integration.producer-regressions.actual client configuration: explicit topic wins native timeout alias",
"rdkafka-hs-integration.producer-regressions.actual client configuration: topic codec overrides global codec",
"rdkafka-hs-integration.producer-regressions.actual client configuration: global codec survives unrelated topic keys",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with NoCompression",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Gzip",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Snappy",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Lz4",
"rdkafka-hs-integration.producer-regressions.byte-exact round trip with Zstd",
"rdkafka-hs-integration.producer-regressions.queued purge flags: none",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue",
"rdkafka-hs-integration.producer-regressions.queued purge flags: inflight",
"rdkafka-hs-integration.producer-regressions.queued purge flags: nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue+inflight",
"rdkafka-hs-integration.producer-regressions.queued purge flags: queue+nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: inflight+nonblocking",
"rdkafka-hs-integration.producer-regressions.queued purge flags: all",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: none",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: inflight",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue+inflight",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: queue+nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: inflight+nonblocking",
"rdkafka-hs-integration.producer-regressions.in-flight purge flags: all",
"rdkafka-hs-integration.producer-regressions.bounded flush timeout recovers when the delayed response arrives",
"rdkafka-hs-integration.producer-regressions.close retries a timed-out flush until the delayed delivery completes",
"rdkafka-hs-integration.producer-regressions.oversized rejection releases capture without a delivery report",
"rdkafka-hs-integration.producer-regressions.known invalid partition rejection releases capture",
"rdkafka-hs-integration.producer-regressions.empty queue supports repeated flush and close",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: NUL topic name",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: NUL header name",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: maximum unrepresentable partition",
"rdkafka-hs-integration.producer-regressions.rejects before native enqueue: minimum unrepresentable partition",
"rdkafka-hs-integration.producer-regressions.configuration rejection: unknown global key",
"rdkafka-hs-integration.producer-regressions.configuration rejection: unknown topic key",
"rdkafka-hs-integration.producer-regressions.configuration rejection: invalid topic timeout",
"rdkafka-hs-integration.producer-regressions.configuration rejection: excessive topic timeout",
"rdkafka-hs-integration.producer-regressions.configuration rejection: global-only key in topic map",
"rdkafka-hs-integration.producer-regressions.later delivery callback replaces the earlier callback",
"rdkafka-hs-integration.producer-regressions.null native delivery frame reports the generic errno fallback without dereferencing a message",
"rdkafka-hs-integration.producer-regressions.native delivery without an opaque Haskell callback preserves the complete record",
"rdkafka-hs-integration.producer-regressions.delivery header acquisition failure preserves the outcome with empty headers",
"rdkafka-hs-integration.public-contract.partition-list-ownership.counter detects a retained native list before explicit release",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.pair conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.offset conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.ordinary input lists release after exact native results",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.missing native partition queue preserves assignment and later forwarding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.assignment outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription acquisition failure preserves the native error without a list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.assignment decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.subscription decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.cancellation at input allocation releases the owned list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.cancellation at assignment return releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.pair conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.offset conversion failure releases the partial list before GC",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.ordinary input lists release after exact native results",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.missing native partition queue preserves assignment and later forwarding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.assignment outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription outputs release after exact decoding",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription acquisition failure preserves the native error without a list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.assignment decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.subscription decoder failure releases the owned output",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.cancellation at input allocation releases the owned list",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.cancellation at assignment return releases the owned output",
"rdkafka-hs-integration.public-contract.messages.batch conversion releases every returned native message",
"rdkafka-hs-integration.public-contract.messages.native message counter detects a retained final object",
"rdkafka-hs-integration.public-contract.messages.batch decoder exception releases unprocessed messages",
"rdkafka-hs-integration.public-contract.messages.batch native header errors remain errors while later records are released",
"rdkafka-hs-integration.public-contract.messages.batch cancellation at native return releases every acquired message",
"rdkafka-hs-integration.public-contract.messages.batch cancellation at middle conversion releases every acquired message",
"rdkafka-hs-integration.public-contract.messages.async single cancellation at native return releases its native message",
"rdkafka-hs-integration.public-contract.messages.async single cancellation at inside conversion releases its native message",
"rdkafka-hs-integration.public-contract.messages.sync single cancellation at native return releases its native message",
"rdkafka-hs-integration.public-contract.messages.sync single cancellation at inside conversion releases its native message",
"rdkafka-hs-integration.public-contract.messages.async header failure preserves the polled record origin",
"rdkafka-hs-integration.public-contract.messages.sync header failure preserves the polled record origin",
"rdkafka-hs-integration.public-contract.messages.async plain polling surfaces native header failure",
"rdkafka-hs-integration.public-contract.messages.sync plain polling surfaces native header failure",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent partition-and-offset",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent offset",
"rdkafka-hs-integration.public-contract.messages.async attributed error preserves independently absent partition",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent partition-and-offset",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent offset",
"rdkafka-hs-integration.public-contract.messages.sync attributed error preserves independently absent partition",
"rdkafka-hs-integration.public-contract.messages.callback-event polling cancellation releases a returned message",
"rdkafka-hs-integration.public-contract.messages.callback buffer preserves attributed header failure",
"rdkafka-hs-integration.public-contract.messages.callback buffer preserves plain header failure",
"rdkafka-hs-integration.public-contract.messages.originless callback error survives seek filtering and a paused partition",
"rdkafka-hs-integration.public-contract.messages.callback-event polling releases and discards a returned fatal frame",
"rdkafka-hs-integration.public-contract.messages.zero batch size leaves the queued records available",
"rdkafka-hs-integration.public-contract.messages.unsupported sync batch does not discard a record",
"rdkafka-hs-integration.public-contract.messages.signed native batch failure preserves its error and queued data",
"rdkafka-hs-integration.public-contract.messages.infinite batch timeout returns available records",
"rdkafka-hs-integration.public-contract.messages.batch capacity 1 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 2 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 5 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: -1",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: -9223372036854775808",
"rdkafka-hs-integration.public-contract.messages.invalid batch array size is rejected before native acquisition: 9223372036854775807",
"rdkafka-hs-integration.public-contract.messages.batch preserves complete records followed by exact partition EOF and idle timeout",
"rdkafka-hs-integration.public-contract.messages.empty batch respects timeout 0",
"rdkafka-hs-integration.public-contract.messages.empty batch respects timeout 100",
"rdkafka-hs-integration.public-contract.diagnostics.supported-property print flushes and preserves the caller handle",
"rdkafka-hs-integration.public-contract.diagnostics.client print flushes and preserves the caller handle",
"rdkafka-hs-integration.public-contract.diagnostics.failed fdopen releases the duplicate and preserves the original",
"rdkafka-hs-integration.public-contract.diagnostics.failed native flush is reported after closing the duplicate",
"rdkafka-hs-integration.public-contract.diagnostics.producer configuration dumps retain exact explicit and global settings",
"rdkafka-hs-integration.public-contract.diagnostics.producer constructor log level overrides the global property on the native client",
"rdkafka-hs-integration.public-contract.diagnostics.consumer configuration dump preserves global settings after subscription merge",
"rdkafka-hs-integration.public-contract.diagnostics.native dump counter detects an unreleased array",
"rdkafka-hs-integration.public-contract.diagnostics.global cancellation at native acquisition releases its array",
"rdkafka-hs-integration.public-contract.diagnostics.topic cancellation at native acquisition releases its array",
"rdkafka-hs-integration.public-contract.metadata-contract.native metadata counter detects an unreleased result",
"rdkafka-hs-integration.public-contract.metadata-contract.native topic-constructor failure survives metadata convenience queries",
"rdkafka-hs-integration.public-contract.metadata-contract.empty native metadata remains empty and releases every result",
"rdkafka-hs-integration.public-contract.metadata-contract.timestamp lookup preserves native overall errors",
"rdkafka-hs-integration.public-contract.metadata-contract.watermark queries preserve unknown partition errors and empty provided metadata",
"rdkafka-hs-integration.public-contract.metadata-contract.topic identity replica sets and exact watermarks",
"rdkafka-hs-integration.public-contract.metadata-contract.distinct native metadata fields retain exact identities and errors",
"rdkafka-hs-integration.public-contract.metadata-contract.provided metadata preserves partition failures in convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.native metadata partition failures survive convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.group query timeout preserves initial metadata wait failure",
"rdkafka-hs-integration.public-contract.metadata-contract.missing topic errors survive convenience helpers",
"rdkafka-hs-integration.public-contract.metadata-contract.timestamp lookup distinguishes before at and after actual record times",
"rdkafka-hs-integration.public-contract.metadata-contract.mixed timestamp request preserves native partition failure",
"rdkafka-hs-integration.public-contract.metadata-contract.metadata timeouts preserve the native error",
"rdkafka-hs-integration.public-contract.metadata-contract.metadata native acquisition cancellation releases its result",
"rdkafka-hs-integration.public-contract.metadata-contract.groups native acquisition cancellation releases its result",
"rdkafka-hs-integration.public-contract.metadata-contract.async group identity lifecycle and supported native states",
"rdkafka-hs-integration.public-contract.metadata-contract.sync group identity lifecycle and supported native states"
],
"passed": 279,
"artifacts": {
"native-phase9.log": {
"path": "dist-compatibility/expanded-source9/native-phase9.log",
"sha256": "951b4b7b5d1b30800ea4699fe604aaf4a9e04a5a290570ff02afc1283569faf3"
},
"native-invalid9.valgrind": {
"path": "dist-compatibility/expanded-source9/native-invalid9.valgrind",
"sha256": "c5897519cc5a1b81b9bb0abd329746f2d1e80dd3d844b43da2344def8f8f10cb"
},
"native-header-stock9.valgrind": {
"path": "dist-compatibility/expanded-source9/native-header-stock9.valgrind",
"sha256": "b30e9245641fa29f53468b1b491ad4c62436ce4502a9ad9a6579ab54b78208c6"
},
"native-header-mutant9.valgrind": {
"path": "dist-compatibility/expanded-source9/native-header-mutant9.valgrind",
"sha256": "8501cc160b066a23f74d0c79ac66f7c3a61407b5db4c61fa62dbb85bc5098337"
},
"phase9-diagnostic-identity.log": {
"path": "dist-compatibility/expanded-source9/phase9-diagnostic-identity.log",
"sha256": "b5e947e38cfa999d968be7abd53685be88beb01ac33c6191db9c34ec24554a6d"
}
},
"limitations": [
"Only detached GHC worker-thread TLS stacks remain possibly lost (304 bytes per affected child); exact GHC 9.14.1 Task.c and posix/OSThreads.c are retained. The pure forkOn baseline did not reproduce this timing-dependent TLS observation. No project/native per-client stack is suppressed.",
"All retained stacks containing librdkafka allocation frames lead exclusively through rd_kafka_sasl_cyrus_global_init into Cyrus SASL process-global initialization. Tagged 2.16.0 source intentionally omits sasl_done because another application may share SASL. These are not per-message/client owners.",
"Diagnostic native differs only by three private test error-flag exports; exact identity and diff are recorded."
]
},
{
"id": "actual-nonthreaded-runtime",
"required": true,
"status": "passed",
"command": [
"/work/phase9/dist-nonthreaded/build/aarch64-linux/ghc-9.14.1/rdkafka-hs-1.0.0.1/t/rdkafka-hs-integration/build/rdkafka-hs-integration/rdkafka-hs-integration",
"-p",
"/runtime-contract/"
],
"tests": [
"rdkafka-hs-integration.public-contract.runtime-contract.RTS capability is observed by async construction",
"rdkafka-hs-integration.public-contract.runtime-contract.explicit async construction checks the runtime",
"rdkafka-hs-integration.public-contract.runtime-contract.sync subscription delivers an exact record",
"rdkafka-hs-integration.public-contract.runtime-contract.deprecated sync runner closes after an exact record"
],
"passed": 4,
"artifacts": {
"nonthreaded-runtime9.log": {
"path": "dist-compatibility/expanded-source9/nonthreaded-runtime9.log",
"sha256": "64f2de222b1848528141d2f18cf942adeedf21ade725229e19805a236d33f516"
},
"nonthreaded-build9.log": {
"path": "dist-compatibility/expanded-source9/nonthreaded-build9.log",
"sha256": "367db75d4bd65ea9f4e08a4836567f2f60183e3fa7c14595da5c79e212b3a16f"
},
"nonthreaded-info9.log": {
"path": "dist-compatibility/expanded-source9/nonthreaded-info9.log",
"sha256": "4624cb69ac272748f36b86dca2969623bb2ce1a54d2f66dbbf5226ff74f36e3d"
}
},
"limitations": []
},
{
"id": "apache-topic-configuration-reject",
"required": true,
"status": "passed",
"command": [
"/evidence/native-phase9-binary",
"-p",
"/unsupported configuration follows/"
],
"tests": [
"rdkafka-hs-integration.topic-configuration.unsupported configuration follows the declared broker policy"
],
"passed": 1,
"artifacts": {
"apache-policy9.log": {
"path": "dist-compatibility/expanded-source9/apache-policy9.log",
"sha256": "619f1dacc2a5c8f5e4fa510ce8d50ef9490183a6e2a9078da8c6a023eaecec7c"
}
},
"limitations": []
}
],
"artifacts": {
"configuration.json": {
"path": "dist-compatibility/expanded-source9/configuration.json",
"sha256": "c6c0771e7da58c35d40170db3ec18cdd2439997e223ef4c088ac3f4e793707f9"
},
"qualification9-results.json": {
"path": "dist-compatibility/expanded-source9/qualification9-results.json",
"sha256": "e0915ee5d4e748697d3ddab61599eea0ff74ea3db67aa1ae5c4e2b747491a7d1"
},
"fixture-cleanup.json": {
"path": "dist-compatibility/expanded-source9/fixture-cleanup.json",
"sha256": "22a1434a32c0b23c77e8cb0f788c46ca45dc4129ff55add57033437db77be5aa"
}
},
"diagnostic_native": {
"path": "/opt/librdkafka-diagnostics/lib/librdkafka.so.1",
"sha256": "c6fdc93c4cdefaeeafd8f3fc9bb0ce49cc63746d57cddbaab2839a04c23b309c",
"source": "Same tagged 2.16.0 C bodies, linker-map change exposes exactly three private error-flag fixture setters; no opaque native layout is copied",
"exports_diff": {
"path": "dist-compatibility/expanded-source9/native-diagnostic-exports.diff",
"sha256": "ff6312086bba73e0e6891060f48f02540b38174dbcbc26c080b12b8655bceafb"
},
"loaded_identity": {
"path": "dist-compatibility/expanded-source9/phase9-diagnostic-identity.log",
"sha256": "b5e947e38cfa999d968be7abd53685be88beb01ac33c6191db9c34ec24554a6d"
}
},
"evidence": "docs/testing/linux-tuple-evidence.json"
},
{
"id": "linux-arm64-ghc9141-native2160-apache440-18",
"owner": 18,
"required": true,
"status": "passed",
"source": {
"project": "mori://shinzui/rdkafka-hs",
"candidate_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c",
"execution_fingerprint": "74c7156e6fee8653bcec844001fd8f95d703bcf4d8e978a857a9f8f3560b6b0a",
"revision": "bfa4f2e plus captured source",
"archive": {
"path": "dist-compatibility/expanded-source9/candidate.tar.gz",
"sha256": "a70e4839d24c5e5179ff9a8be48643951e185d604cd8ba3401587730279f3b22"
},
"root_file_inventory": {
"path": "dist-compatibility/expanded-source9/root-functional-files.json",
"sha256": "69506c90cfc124f3a175a664873f5d8b49aff62a7426265c56c3dd64fcc84c21"
},
"archive_file_inventory": {
"path": "dist-compatibility/expanded-source9/phase9-functional-files.json",
"sha256": "d0e5d59aa49833ecd1305410c839cbebdbbb418679cecc6de0c2548b142dca4b"
},
"archive_comparison": {
"changed_files": [],
"added_files": [],
"omitted_development_files": [
".envrc",
"cabal.project",
"flake.lock",
"flake.module.nix",
"flake.nix",
"justfile",
"nix/haskell.nix",
"nix/pre-commit.nix",
"nix/redpanda.nix",
"nix/treefmt.nix"
],
"omitted_project_configuration": {
"path": "cabal.project",
"content": "packages: .\n",
"replacement": "Cabal implicit single package in clean extraction; same package set, no solver/compiler constraints in omitted file"
},
"execution_fingerprint": "74c7156e6fee8653bcec844001fd8f95d703bcf4d8e978a857a9f8f3560b6b0a",
"root_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c"
},
"configuration_sha256": "c6c0771e7da58c35d40170db3ec18cdd2439997e223ef4c088ac3f4e793707f9"
},
"environment": {
"os": "PRETTY_NAME=\"Ubuntu 24.04.5 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"\nVERSION=\"24.04.5 LTS (Noble Numbat)\"\nVERSION_CODENAME=noble\nID=ubuntu\nID_LIKE=debian\nHOME_URL=\"https://www.ubuntu.com/\"\nSUPPORT_URL=\"https://help.ubuntu.com/\"\nBUG_REPORT_URL=\"https://bugs.launchpad.net/ubuntu/\"\nPRIVACY_POLICY_URL=\"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy\"\nUBUNTU_CODENAME=noble\nLOGO=ubuntu-logo",
"kernel": "Linux 6.18.15",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"java": "openjdk 21.0.12.1 2026-08-18\nOpenJDK Runtime Environment (build 21.0.12.1+1-1-24.04.4-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12.1+1-1-24.04.4-Ubuntu, mixed mode, sharing)",
"native_version": "2.16.0",
"broker_version": "Apache Kafka 4.4.0",
"loaded_native_identity": {
"observed": "(\"2.16.0\",34603263)",
"path": "/opt/librdkafka-2.16.0/lib/librdkafka.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f"
},
"broker_topology": "run-owned three-node combined broker/controllers; ephemeral loopback ports; RF3/min ISR2 fault topics"
},
"test_configuration": {
"compiler": "GHC 9.14.1",
"native_standard": "2.16.0",
"broker": "Apache Kafka 4.4.0",
"kafka_home": "/opt/kafka_2.13-4.4.0",
"cabal_flags": [
"examples",
"integration"
],
"fixture_processes": {
"broker": 3,
"security": 1
},
"broker_callback_modes": [
"async",
"sync"
],
"protocols": [
"range",
"cooperative-sticky"
],
"replicated_failure_topics": {
"replication": 3,
"min_ISR": 2
},
"security": "SASL/PLAIN over verified TLS, ephemeral users/ACLs/CA; secrets intentionally absent",
"recipes": {
"test-integration/Kafka/Compatibility/KafkaFixture.hs": "b3ffe1aab36ba7ba8523075383228676c5f4d7e5f837592dbbb32844beab4e1a",
"test-integration/Kafka/Compatibility/SecurityFixture.hs": "bd46bf52a1919dee7042721820365f5765cd8c787a727ee3d9b7a8e541644921",
"test-integration/Kafka/TestEnv.hs": "f82b4306c90317e713f7de107cd7bc281626c04fd7327ae421a49de10b1dc91a"
}
},
"scenarios": [
{
"id": "distributed-failure-recovery",
"required": true,
"status": "passed",
"command": [
"/evidence/native-phase9-binary",
"--broker-qualification"
],
"tests": [
"broker-failure.async observed leader election preserves exact records and commits",
"broker-failure.sync observed leader election preserves exact records and commits",
"broker-failure.eager async handoff pause seek eviction and complete outage recover exact offsets",
"broker-failure.eager sync handoff pause seek eviction and complete outage recover exact offsets",
"broker-failure.cooperative async handoff pause seek eviction and complete outage recover exact offsets",
"broker-failure.cooperative sync handoff pause seek eviction and complete outage recover exact offsets",
"broker-failure.async transaction commit timeout across full outage retries and preserves read-committed visibility",
"broker-failure.sync transaction commit timeout across full outage retries and preserves read-committed visibility",
"broker-failure.cancellation during complete outage restores all owned brokers"
],
"passed": 9,
"artifacts": {
"broker-final9.log": {
"path": "dist-compatibility/expanded-source9/broker-final9.log",
"sha256": "f9236628ae671ffa549c4c9ce17ba8ba1acaf5f69e066acfe4ebfe94bd303681"
},
"broker-final9-tests.txt": {
"path": "dist-compatibility/expanded-source9/broker-final9-tests.txt",
"sha256": "1b2270f302280d667a9a755787ee368fce03adc8f849ef070c54f02d99919b84"
},
"fixture-cleanup.json": {
"path": "dist-compatibility/expanded-source9/fixture-cleanup.json",
"sha256": "22a1434a32c0b23c77e8cb0f788c46ca45dc4129ff55add57033437db77be5aa"
}
},
"limitations": []
}
],
"artifacts": {
"context": {
"path": "docs/testing/broker-qualification-context.json",
"sha256": "d080bb062d1afed7d5a5b71ab37ed9b70b83fbe114d44650253af3999cc56c36"
}
},
"evidence": "docs/testing/broker-failure-evidence.json"
},
{
"id": "linux-arm64-ghc9141-native2160-apache440-19",
"owner": 19,
"required": true,
"status": "passed",
"source": {
"project": "mori://shinzui/rdkafka-hs",
"candidate_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c",
"execution_fingerprint": "74c7156e6fee8653bcec844001fd8f95d703bcf4d8e978a857a9f8f3560b6b0a",
"revision": "bfa4f2e plus captured source",
"archive": {
"path": "dist-compatibility/expanded-source9/candidate.tar.gz",
"sha256": "a70e4839d24c5e5179ff9a8be48643951e185d604cd8ba3401587730279f3b22"
},
"root_file_inventory": {
"path": "dist-compatibility/expanded-source9/root-functional-files.json",
"sha256": "69506c90cfc124f3a175a664873f5d8b49aff62a7426265c56c3dd64fcc84c21"
},
"archive_file_inventory": {
"path": "dist-compatibility/expanded-source9/phase9-functional-files.json",
"sha256": "d0e5d59aa49833ecd1305410c839cbebdbbb418679cecc6de0c2548b142dca4b"
},
"archive_comparison": {
"changed_files": [],
"added_files": [],
"omitted_development_files": [
".envrc",
"cabal.project",
"flake.lock",
"flake.module.nix",
"flake.nix",
"justfile",
"nix/haskell.nix",
"nix/pre-commit.nix",
"nix/redpanda.nix",
"nix/treefmt.nix"
],
"omitted_project_configuration": {
"path": "cabal.project",
"content": "packages: .\n",
"replacement": "Cabal implicit single package in clean extraction; same package set, no solver/compiler constraints in omitted file"
},
"execution_fingerprint": "74c7156e6fee8653bcec844001fd8f95d703bcf4d8e978a857a9f8f3560b6b0a",
"root_fingerprint": "2ec6cfbb3416926925e68ad8e96da1322be55ec292821543a8279040762cd98c"
},
"configuration_sha256": "c6c0771e7da58c35d40170db3ec18cdd2439997e223ef4c088ac3f4e793707f9"
},
"environment": {
"os": "PRETTY_NAME=\"Ubuntu 24.04.5 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"\nVERSION=\"24.04.5 LTS (Noble Numbat)\"\nVERSION_CODENAME=noble\nID=ubuntu\nID_LIKE=debian\nHOME_URL=\"https://www.ubuntu.com/\"\nSUPPORT_URL=\"https://help.ubuntu.com/\"\nBUG_REPORT_URL=\"https://bugs.launchpad.net/ubuntu/\"\nPRIVACY_POLICY_URL=\"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy\"\nUBUNTU_CODENAME=noble\nLOGO=ubuntu-logo",
"kernel": "Linux 6.18.15",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"java": "openjdk 21.0.12.1 2026-08-18\nOpenJDK Runtime Environment (build 21.0.12.1+1-1-24.04.4-Ubuntu)\nOpenJDK 64-Bit Server VM (build 21.0.12.1+1-1-24.04.4-Ubuntu, mixed mode, sharing)",
"native_version": "2.16.0",
"broker_version": "Apache Kafka 4.4.0",
"loaded_native_identity": {
"observed": "(\"2.16.0\",34603263)",
"path": "/opt/librdkafka-2.16.0/lib/librdkafka.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f"
},
"broker_topology": "run-owned one-node combined broker/controller; ephemeral SASL_SSL listener; verified localhost CA; ephemeral PLAIN users and ACLs"
},
"test_configuration": {
"mode": "--authentication-qualification",
"callback_modes": [
"async",
"sync"
],
"SASL": "PLAIN",
"security_protocol": "SASL_SSL",
"TLS_hostname_verification": "https",
"server_SAN": "DNS:localhost",
"credentials": "ephemeral, local private files only",
"authorization": "Separate original/replacement writer/reader ACLs; Describe-only denied identity; group denial audited at FindCoordinator; admin allow/deny",
"cleanup": "Owned ProcessHandles stopped, broker state/JAAS/passwords/private keys removed, retained textual logs scanned for generated passwords"
},
"scenarios": [
{
"id": "authentication-tls-acl-reconnect",
"required": true,
"status": "passed",
"command": [
"/evidence/native-phase9-binary",
"--authentication-qualification"
],
"tests": [
"authentication-contract.verified TLS authenticated delivery and exact consume/commit in both modes",
"authentication-contract.authenticated identity without topic ACL receives exact produce denial",
"authentication-contract.invalid-password producer reports the exact connection failure and no delivery",
"authentication-contract.untrusted-CA producer reports the exact connection failure and no delivery",
"authentication-contract.hostname-mismatch producer reports the exact connection failure and no delivery",
"authentication-contract.invalid-password async consumer reports the exact connection failure",
"authentication-contract.invalid-password sync consumer reports the exact connection failure",
"authentication-contract.untrusted-CA async consumer reports the exact connection failure",
"authentication-contract.untrusted-CA sync consumer reports the exact connection failure",
"authentication-contract.hostname-mismatch async consumer reports the exact connection failure",
"authentication-contract.hostname-mismatch sync consumer reports the exact connection failure",
"authentication-contract.async exact topic/group/admin authorization denials",
"authentication-contract.sync exact topic/group/admin authorization denials",
"authentication-contract.producer credential replacement authenticates a new identity after observed reconnect and recovers from invalid replacement",
"authentication-contract.async consumer credential replacement authenticates after observed reconnect and recovers from invalid replacement",
"authentication-contract.sync consumer credential replacement authenticates after observed reconnect and recovers from invalid replacement",
"authentication-contract.interruption destroys owned secure processes, credentials, ACL state and private keys"
],
"passed": 17,
"artifacts": {
"authentication-final9.log": {
"path": "dist-compatibility/expanded-source9/authentication-final9.log",
"sha256": "a9cc23df591ca6608c613090bf42ae57ece89c1dc3e3ede7bbc0dee1cbcd2457"
},
"authentication-final9-tests.txt": {
"path": "dist-compatibility/expanded-source9/authentication-final9-tests.txt",
"sha256": "e011f6a1ed4544904bc4117ebdd30e85339b33c096b3d0619bbff506f5e2e893"
},
"fixture-cleanup.json": {
"path": "dist-compatibility/expanded-source9/fixture-cleanup.json",
"sha256": "22a1434a32c0b23c77e8cb0f788c46ca45dc4129ff55add57033437db77be5aa"
}
},
"limitations": [
"SASL PLAIN only; no other SASL mechanism claim."
]
}
],
"artifacts": {
"context": {
"path": "docs/testing/authentication-qualification-context.json",
"sha256": "bbd1b7edc15934382e7b7f4e516ecce5688f257c0ee9eb19277e3b42ef26c730"
}
},
"evidence": "docs/testing/authentication-evidence.json"
}
],
"previous_checkpoint": {
"candidate_fingerprint": "abbf4e69f7806356c083acb0bb163c3e24f1fc7b4b1b5d78d1f469b0653a8993",
"tuples": [
{
"id": "linux-arm64-ghc9141-native2160-apache440",
"owner": 17,
"required": true,
"status": "in-progress",
"source": {
"candidate_fingerprint": "eb6352fe62c75ec289a0a5f543ed0692106d24f3370ddb46ef31f0188410b14a",
"archive_sha256": "b02206dc4621d86226f15f6b8b88768e8e9e494b51cb13ec6746805ae1d367ba"
},
"planned_environment": {
"os": "Ubuntu 24.04 Linux",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"native": "2.16.0",
"broker": "Apache Kafka 4.4.0"
},
"environment": {
"os": "PRETTY_NAME=\"Ubuntu 24.04.5 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"\nVERSION=\"24.04.5 LTS (Noble Numbat)\"\nVERSION_CODENAME=noble\nID=ubuntu\nID_LIKE=debian\nHOME_URL=\"https://www.ubuntu.com/\"\nSUPPORT_URL=\"https://help.ubuntu.com/\"\nBUG_REPORT_URL=\"https://bugs.launchpad.net/ubuntu/\"\nPRIVACY_POLICY_URL=\"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy\"\nUBUNTU_CODENAME=noble\nLOGO=ubuntu-logo\n",
"kernel": "Linux 6.18.15 aarch64",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"loaded_libraries": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/loaded-libraries.log",
"sha256": "1eadb3fce16b3a55fd4cc4a9a27eccefc277fd3e664fd3b76c75acccfa846e3a"
},
"native_binary": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/native-candidate.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f"
},
"native_version": "2.16.0",
"loaded_native_identity": {
"version": "2.16.0",
"number": 34603263,
"path": "/opt/librdkafka-2.16.0/lib/librdkafka.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f",
"observed": "(\"2.16.0\",34603263)"
},
"broker_version": "Apache Kafka 4.4.0",
"broker_topology": "Three owned combined broker/controllers, IDs 1/2/3 on loopback 41092/42092/43092; broker default min ISR 1 for single-replica inherited fixtures; failover topic replication 3 and min ISR 2"
},
"test_configuration": null,
"scenarios": [
{
"id": "initial-broker-smoke",
"required": true,
"status": "passed",
"tests": [
"rdkafka-hs-integration.callback-lifetime.async error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.callback-lifetime.sync error callback releases after destroy with retained wrapper",
"rdkafka-hs-integration.transaction-errors.transaction-error-leak-probe releases 300 immediate native errors",
"rdkafka-hs-integration.public-contract.partition-list-ownership.async.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.partition-list-ownership.sync.native logical offsets decode independently without losing partition identity",
"rdkafka-hs-integration.public-contract.messages.batch capacity 1 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 2 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.messages.batch capacity 5 preserves complete ordered records across partial batches",
"rdkafka-hs-integration.public-contract.runtime-contract.RTS capability is observed by async construction",
"rdkafka-hs-integration.public-contract.runtime-contract.explicit async construction checks the runtime",
"rdkafka-hs-integration.public-contract.runtime-contract.sync subscription delivers an exact record",
"rdkafka-hs-integration.public-contract.runtime-contract.deprecated sync runner closes after an exact record",
"rdkafka-hs-integration.seek-partitions.async.single seek replays exact record",
"rdkafka-hs-integration.seek-partitions.sync.single seek replays exact record"
],
"passed": 14,
"artifacts": {
"linux-smoke.log": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/linux-smoke.log",
"sha256": "424fd29085e2e6e17a8ee6f090c5c4f748b41ba3014ae05e04c63f49de4f0468"
},
"linux-smoke-tests.json": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/linux-smoke-tests.json",
"sha256": "50a4991e3ba780d80bb10559cb6c2bdd713f7d081da43513b379da4c798501d5"
},
"loaded-native.log": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/loaded-native.log",
"sha256": "6ec9b644a82e1dd0a2ec1c57250b4e2d3043deb9a608d8384f7ec30026876a93"
},
"loaded-libraries.log": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/loaded-libraries.log",
"sha256": "1eadb3fce16b3a55fd4cc4a9a27eccefc277fd3e664fd3b76c75acccfa846e3a"
}
},
"command": [
"python3",
"/evidence/smoke.py"
],
"limitations": [
"Initial archive only; subsequent test/probe changes require source-bound replay."
]
},
{
"id": "complete-native-ownership-diagnostics",
"required": true,
"status": "in-progress",
"limitations": "Reachable RTS/library allocations are retained separately. Complete ownership scenarios, final quiescent runner and current candidate replay remain required."
}
],
"artifacts": {},
"remaining": [
"Promote and replay bounded native quiescence under the final source package",
"Run every required native ownership/header scenario with effective controls",
"Reconcile final source/configuration and package identity with all producer children"
],
"evidence": "docs/testing/linux-tuple-evidence.json"
},
{
"id": "apache-distributed-failure-group-transaction",
"owner": 18,
"required": true,
"status": "in-progress",
"remaining": [
"Leader election and exact post-failure records",
"Bounded full outage and callback/commit/poll recovery",
"Eager/cooperative handoff and assignmentLost True",
"Interrupted transaction recovery and read-committed visibility",
"Actual unknown-topic configuration rejection"
],
"environment": {
"os": "PRETTY_NAME=\"Ubuntu 24.04.5 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"\nVERSION=\"24.04.5 LTS (Noble Numbat)\"\nVERSION_CODENAME=noble\nID=ubuntu\nID_LIKE=debian\nHOME_URL=\"https://www.ubuntu.com/\"\nSUPPORT_URL=\"https://help.ubuntu.com/\"\nBUG_REPORT_URL=\"https://bugs.launchpad.net/ubuntu/\"\nPRIVACY_POLICY_URL=\"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy\"\nUBUNTU_CODENAME=noble\nLOGO=ubuntu-logo\n",
"kernel": "Linux 6.18.15 aarch64",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"loaded_libraries": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/loaded-libraries.log",
"sha256": "1eadb3fce16b3a55fd4cc4a9a27eccefc277fd3e664fd3b76c75acccfa846e3a"
},
"native_binary": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/native-candidate.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f"
},
"native_version": "2.16.0",
"loaded_native_identity": {
"version": "2.16.0",
"number": 34603263,
"path": "/opt/librdkafka-2.16.0/lib/librdkafka.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f",
"observed": "(\"2.16.0\",34603263)"
},
"broker_version": "Apache Kafka 4.4.0",
"broker_topology": "Three owned combined broker/controllers, IDs 1/2/3 on loopback 41092/42092/43092; broker default min ISR 1 for single-replica inherited fixtures; failover topic replication 3 and min ISR 2"
},
"evidence": "docs/testing/broker-failure-evidence.json"
},
{
"id": "sasl-tls-acl-credential-reconnect",
"owner": 19,
"required": true,
"status": "passed",
"remaining": [],
"source": {
"candidate_fingerprint": "abbf4e69f7806356c083acb0bb163c3e24f1fc7b4b1b5d78d1f469b0653a8993",
"execution_fingerprint": "2571e68979f3fd59c2b2e85c07c8e986787de49042d4b7645b59b17ea240cf49",
"revision": "e29e2f7 plus captured uncommitted source",
"archive": {
"path": "dist-compatibility/owned-fixture-checkpoint/candidate-phase5.tar.gz",
"sha256": "07b996694a93bd7fd1a19d649a64c7456adc0522adc66b5d31919b232a5d7167"
},
"root_file_inventory": {
"path": "dist-compatibility/owned-fixture-checkpoint/root-fingerprint-files.json",
"sha256": "4e82164f2a0fa9c56a85c2372aaa78eb79185770a0fe22f7e94cdb8a8bda9821"
},
"archive_file_inventory": {
"path": "dist-compatibility/owned-fixture-checkpoint/phase5-fingerprint-files.json",
"sha256": "479ad262d71dd40d6edfd9c1db3069744b8e26898f8d1f588d2db08cde38bda2"
},
"archive_comparison": {
"changed_files": [],
"added_files": [],
"omitted_development_files": [
".envrc",
"flake.lock",
"flake.module.nix",
"flake.nix",
"justfile",
"nix/haskell.nix",
"nix/pre-commit.nix",
"nix/redpanda.nix",
"nix/treefmt.nix"
]
},
"configuration_sha256": "029db047ce9030f57c90485d05305cee35c9031f2651304434c226d586fcb653"
},
"environment": {
"os": "PRETTY_NAME=\"Ubuntu 24.04.5 LTS\"\nNAME=\"Ubuntu\"\nVERSION_ID=\"24.04\"\nVERSION=\"24.04.5 LTS (Noble Numbat)\"\nVERSION_CODENAME=noble\nID=ubuntu\nID_LIKE=debian\nHOME_URL=\"https://www.ubuntu.com/\"\nSUPPORT_URL=\"https://help.ubuntu.com/\"\nBUG_REPORT_URL=\"https://bugs.launchpad.net/ubuntu/\"\nPRIVACY_POLICY_URL=\"https://www.ubuntu.com/legal/terms-and-policies/privacy-policy\"\nUBUNTU_CODENAME=noble\nLOGO=ubuntu-logo\n",
"kernel": "Linux 6.18.15 aarch64",
"architecture": "aarch64",
"ghc": "9.14.1",
"cabal": "3.16.1.0",
"loaded_libraries": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/loaded-libraries.log",
"sha256": "1eadb3fce16b3a55fd4cc4a9a27eccefc277fd3e664fd3b76c75acccfa846e3a"
},
"native_binary": {
"path": "dist-compatibility/linux-arm64-ghc9141-native2160-apache440/native-candidate.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f"
},
"native_version": "2.16.0",
"loaded_native_identity": {
"version": "2.16.0",
"number": 34603263,
"path": "/opt/librdkafka-2.16.0/lib/librdkafka.so.1",
"sha256": "e4ebf0b82581b51a86a0d861a90c07004b0b1fec67ab71e409b572594846154f",
"observed": "(\"2.16.0\",34603263)"
},
"broker_version": "Apache Kafka 4.4.0",
"broker_topology": "One owned Apache broker/controller. Separate internal loopback health/controller listener; explicit secure public listener used by all authentication clients."
},
"test_configuration": {
"mode": "--authentication-qualification",
"callback_modes": [
"async",
"sync"
],
"SASL": "PLAIN",
"security_protocol": "SASL_SSL",
"TLS_hostname_verification": "https",
"server_SAN": "DNS:localhost",
"credentials": "ephemeral, local private files only",
"authorization": "Separate original/replacement writer/reader ACLs; Describe-only denied identity; group denial audited at FindCoordinator; admin allow/deny",
"cleanup": "Owned ProcessHandles stopped, broker state/JAAS/passwords/private keys removed, retained textual logs scanned for generated passwords"
},
"scenarios": [
{
"id": "authentication-tls-acl-reconnect-interruption",
"required": true,
"status": "passed",
"command": [
"rdkafka-hs-integration",
"--authentication-qualification"
],
"tests": [
"authentication-contract.verified TLS authenticated delivery and exact consume/commit in both modes",
"authentication-contract.authenticated identity without topic ACL receives exact produce denial",
"authentication-contract.invalid-password producer reports the exact connection failure and no delivery",
"authentication-contract.untrusted-CA producer reports the exact connection failure and no delivery",
"authentication-contract.hostname-mismatch producer reports the exact connection failure and no delivery",
"authentication-contract.invalid-password async consumer reports the exact connection failure",
"authentication-contract.invalid-password sync consumer reports the exact connection failure",
"authentication-contract.untrusted-CA async consumer reports the exact connection failure",
"authentication-contract.untrusted-CA sync consumer reports the exact connection failure",
"authentication-contract.hostname-mismatch async consumer reports the exact connection failure",
"authentication-contract.hostname-mismatch sync consumer reports the exact connection failure",
"authentication-contract.async exact topic/group/admin authorization denials",
"authentication-contract.sync exact topic/group/admin authorization denials",
"authentication-contract.producer credential replacement authenticates a new identity after observed reconnect and recovers from invalid replacement",
"authentication-contract.async consumer credential replacement authenticates after observed reconnect and recovers from invalid replacement",
"authentication-contract.sync consumer credential replacement authenticates after observed reconnect and recovers from invalid replacement",
"authentication-contract.interruption destroys owned secure processes, credentials, ACL state and private keys"
],
"passed": 17,
"artifacts": {
"security-phase5.log": {
"path": "dist-compatibility/owned-fixture-checkpoint/security-phase5.log",
"sha256": "79d2d93b7ec51860ef21c0947fe4993f94a513c63e6cb84f6881b5bbea4c8810"
},
"security-phase5-tests.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/security-phase5-tests.txt",
"sha256": "e011f6a1ed4544904bc4117ebdd30e85339b33c096b3d0619bbff506f5e2e893"
},
"security-phase5-cleanup.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/security-phase5-cleanup.txt",
"sha256": "e5881de7257c9d5594697bdc4ad6628ca1c54b2ee1ddda0fa84b5b76a8f2b4b0"
},
"phase5-normal-ldd.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/phase5-normal-ldd.txt",
"sha256": "ab1041dc9d2c9d876d269ca135985451af58aa02ac61b754d8f706a2363900c3"
}
},
"limitations": [
"SASL PLAIN only; other mechanisms are not claimed tested. Original/replacement ACLs distinguish authenticated identities."
]
}
],
"artifacts": {
"candidate-phase5.tar.gz": {
"path": "dist-compatibility/owned-fixture-checkpoint/candidate-phase5.tar.gz",
"sha256": "07b996694a93bd7fd1a19d649a64c7456adc0522adc66b5d31919b232a5d7167"
},
"phase5-build.log": {
"path": "dist-compatibility/owned-fixture-checkpoint/phase5-build.log",
"sha256": "e2cb907393ef68a061bbd2bbb2406a369de8edf14678681b69f75042d4da1b4a"
},
"phase5-fingerprint.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/phase5-fingerprint.txt",
"sha256": "11f543eac0f314bd059eed35c4e325d0ab07d4aa131424287bc3ebadaefcf66e"
},
"phase5-fingerprint-files.json": {
"path": "dist-compatibility/owned-fixture-checkpoint/phase5-fingerprint-files.json",
"sha256": "479ad262d71dd40d6edfd9c1db3069744b8e26898f8d1f588d2db08cde38bda2"
},
"root-fingerprint-files.json": {
"path": "dist-compatibility/owned-fixture-checkpoint/root-fingerprint-files.json",
"sha256": "4e82164f2a0fa9c56a85c2372aaa78eb79185770a0fe22f7e94cdb8a8bda9821"
},
"phase5-normal-ldd.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/phase5-normal-ldd.txt",
"sha256": "ab1041dc9d2c9d876d269ca135985451af58aa02ac61b754d8f706a2363900c3"
},
"security-phase5.log": {
"path": "dist-compatibility/owned-fixture-checkpoint/security-phase5.log",
"sha256": "79d2d93b7ec51860ef21c0947fe4993f94a513c63e6cb84f6881b5bbea4c8810"
},
"security-phase5-tests.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/security-phase5-tests.txt",
"sha256": "e011f6a1ed4544904bc4117ebdd30e85339b33c096b3d0619bbff506f5e2e893"
},
"security-phase5-cleanup.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/security-phase5-cleanup.txt",
"sha256": "e5881de7257c9d5594697bdc4ad6628ca1c54b2ee1ddda0fa84b5b76a8f2b4b0"
},
"broker-phase5.log": {
"path": "dist-compatibility/owned-fixture-checkpoint/broker-phase5.log",
"sha256": "172c7b476e1e4868a75c17a54226fa1f4c2b57a3e05ce2bd7c58b15f746a4570"
},
"broker-phase5-tests.txt": {
"path": "dist-compatibility/owned-fixture-checkpoint/broker-phase5-tests.txt",
"sha256": "506f5bff1a6a34e7b328321480bb5cb7fc97cfee2ca1c7864dd270e0a37e50a4"
}
},
"evidence": "docs/testing/authentication-evidence.json"
}
]
}
}
}