HAProxy 3.4.6-CE-ubuntu24.04-r7 build trail
How ReadyStack built readystack/haproxy:3.4.6-CE-ubuntu24.04-r7 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/haproxy:3.4.6-CE-ubuntu24.04-r7 - Index digestsha256:bb7c69b0b5d7ae35f2f9f35e86872c750c309d0ef5a1b6e73872bbca69be0d75
- linux/amd64 digestsha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a
- Archive
ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz - Archive SHA-256 now6ca30c5302db1858fcee3c95b633c15d5d19096fd7f2495e11f2b8576b865093
- Pins record
docs/PINS.md,docs/provenance/PINS.jsonin the archive (since generated) - Generated2026-11-12T12:24:35Z by KitForge release/build_trail.py
- Sections9 sections, 8 fully recorded; 1 item not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.trail.json.sigstore ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
Fully recorded- ProductHAProxy (haproxy) [MANIFEST.json]
- Release tag3.4.6-CE-ubuntu24.04-r7 [MANIFEST.json]
- Imagereadystack/haproxy:3.4.6-CE-ubuntu24.04-r7 [MANIFEST.json]
- Image index digestsha256:bb7c69b0b5d7ae35f2f9f35e86872c750c309d0ef5a1b6e73872bbca69be0d75 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a [ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz (bytes 553808301) [MANIFEST.json]
- Archive sha256 at publish6ca30c5302db1858fcee3c95b633c15d5d19096fd7f2495e11f2b8576b865093 [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack historynone: the archive is as first published [MANIFEST.json, repack_history]
- Upstream repositoryhttps://git.haproxy.org/git/haproxy-3.4.git [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv3.4.6 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commit56332c50b5291cfbbfd440d958adc988fbf87e2f [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hash98cbc2f2c71839bc24fb4454799e109179f1a5360386051ccc40b4b2b88c6216 (files 1497) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:a80eb8811ed36e7d472a4b2bbfc7886912ff48465690650437445156c6129492 [ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1794448179 (utc 2026-11-12T01:49:39Z) [ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json, inputs.source_date_epoch]
- Base images
- ref golang:1.27.3-bookworm@sha256:972b4110ba0f47539a975c31e52c64765e1ff19f2d74469ae4a595c6676e80a5 · platform digest sha256:fea12ba16096adec0f699ce1c4da2154d320450e56c1f63671f95d2a3551c77b
- ref ubuntu:24.04@sha256:2198e4c65076e9cb0b3d695219df667c0e3b0072da64ca3c2648aca17dcecaf5 · platform digest sha256:77eb101c607d6e3d4f5ad0c8a02c2136c689b98aba1f359e6502ba517e5c57ec
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json, engine]
- Engine commit(s)
- commit d6acf665ef6d5a2226ab69008894a83a57e0fc08 · dirty yes · first drive 4336
- commit 610e38b4db1278bcf2eddc75bc160bb967a516ed · dirty yes · first drive 4375
- commit 90a06a5887bb1d16e24cf824619264064842b72d · dirty yes · first drive 4380
- commit 8179ce1fe45ed3d29eb2493df831304e9064c094 · dirty yes · first drive 4401
- commit 28713a5f8609b228967998dd71acc203cdd43d34 · dirty yes · first drive 4408
- commit 1d19e4172aaa5572a9c6ae1436e282185b7e6835 · dirty yes · first drive 4414
- commit 27badbefbe8aac72eb90e98ea8f843a03c177b52 · dirty yes · first drive 4421
Why this release exists
Fully recorded- Chain994 (created 2026-11-12T02:02:24Z · trigger customer_request · upstream version 3.4.6) [chains, chains #994]
- Requestbuild request #692 (rebuild) (requested at 2026-11-12T01:49:41Z · requested by kitforge-agent · version 3.4.6) [build_requests, build_requests #692]
- Reasonrevision 3.4.6-CE-ubuntu24.04-r7: same upstream version rebuilt (retarget.py --rev-bump) [build_requests, build_requests #692 request_reason]
- Supersedesreadystack/haproxy:3.4.6-CE-ubuntu24.04-r6 (chain 920) [chains, chains #920]
The path through the harness
Fully recorded1 chain · 7 drives · 18 stages · 6 rewinds
Chain 994 release · ready_to_ship
Created 2026-11-12T02:02:24Z, upstream 3.4.6, build request 692 [chains, chains #994]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 4336 | 2026-11-12T02:02:44Z | 62 | build host 2 withhold-publish | stage_failed at package_archive; first failed check exists:checksums; 18 ticks [drive_runs, drive_runs #4336] |
| 4375 | 2026-11-12T08:18:34Z | 5 | build host 2 withhold-publish | ready_to_ship at package_archive; 3 ticks [drive_runs, drive_runs #4375] |
| 4380 | 2026-11-12T09:02:18Z | 3.4 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4380] |
| 4401 | 2026-11-12T10:47:19Z | 4.2 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4401] |
| 4408 | 2026-11-12T11:16:08Z | 5 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4408] |
| 4414 | 2026-11-12T11:50:36Z | 3.3 | build host 2 withhold-publish | ready_to_ship at package_archive; 2 ticks [drive_runs, drive_runs #4414] |
| 4421 | 2026-11-12T12:20:18Z | — | build host 2 publish-held | not recorded [drive_runs, drive_runs #4421] |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-11-12T02:02:55Z | 2026-11-12T02:02:55Z | 1 | 4
|
order_json b9246ae0afb5… |
acquire |
2026-11-12T02:03:03Z | 2026-11-12T02:03:04Z | 1 | 12
|
source_tree b4a286ecdaf7…license_file 0717ca51fcea…custody_inputs 87d0bde29ce1…source_tree_hash f69a45fc517b…source_file_manifest f479416e5866… |
plan |
2026-11-12T02:03:33Z | 2026-11-12T02:03:34Z | 1 | 10
|
recon_report 832049119734…input_pin_plan 59a6d9c27c3b…toolchain_lock 7f1a2ada3514… |
assemble_kit |
2026-11-12T02:05:52Z | 2026-11-12T02:05:53Z | 1 | 27
|
dockerfile 25e268cbdd37…build_recipe 1929bc078bb9…system_pinning aa8db05a9a8a…build_offline_sh 6ab4f08a6ec7…generate_sbom_sh ce0f1e6f1e70…first_boot_health ee113586b71d…verify_offline_sh 3e8184ea230c…base_image_digests 6d9a4296ecce…dockerfile_offline 25e268cbdd37…first_build_digest e29fcb6ddff5… |
remediate |
2026-11-12T02:06:17Z | 2026-11-12T02:06:18Z | 1 | 8
|
vendored_apt e3b0c44298fc…remediation_log c0f075d08284…security_report 645c5a409c3d… |
build_kit |
2026-11-12T02:09:30Z | 2026-11-12T02:09:31Z | 1 | 9
|
cosign_stamp c93711ec6069…locked_digest b68c13cdc777…freeze_manifest f3e8f4d2291b…offline_rebuild_transcript db3b46439d2f… |
verdict |
2026-11-12T02:10:01Z | 2026-11-12T02:10:01Z | 1 | 8
|
scout_verdict 3bcf0398345a… |
publish_image |
2026-11-12T02:10:31Z | 2026-11-12T02:10:32Z | 1 | 7
|
hub_readme 8b30e7b32e18…promotion_record cfc82af222a8… |
boot_instance |
2026-11-12T02:10:37Z | 2026-11-12T08:18:49Z | 3 | — | instance_handle 1aa9b671b071… |
sbom |
2026-11-12T02:10:51Z | 2026-11-12T02:10:52Z | 1 | 5
|
sbom_md cd608fe651ad…sbom_json 1609a0ea5106… |
schema_discovery |
2026-11-12T02:10:55Z | 2026-11-12T02:10:55Z | 1 | 7
|
schema_hash 58468b6f0d93…dependency_tree ef6cf887e729…table_classification c7f5b426756d… |
admin_handbook |
2026-11-12T02:33:14Z | 2026-11-12T02:33:15Z | 1 | 7
|
api_map dd3f90b0f440…admin_handbook bb4d536bb7cd… |
db_handbook |
2026-11-12T02:52:34Z | 2026-11-12T02:52:35Z | 1 | 8
|
db_handbook a411085d9374…seed_isolation 8882e41ac75c… |
seed_data |
2026-11-12T02:52:41Z | 2026-11-12T02:52:42Z | 1 | 6
|
seed_data_sql a4ce08d6cb58…seed_cases_json d5b64c219fd3… |
seed_validate |
2026-11-12T02:52:45Z | 2026-11-12T02:52:45Z | 1 | 3
|
seed_data_contract c249ee663ad1… |
usecase_validate |
2026-11-12T02:53:05Z | 2026-11-12T02:53:06Z | 1 | 10
|
failed_tests ce0192e69fda…passed_tests e91e8b45661e…test_results 23b8239c1653…usecase_contract bf39e2cfcb6f… |
finalize_docs |
2026-11-12T02:53:12Z | 2026-11-12T08:18:56Z | 2 | 9
|
defects_json 740572bd654b…release_notes 09b31f3ed0a2…api_integration_guide bde411a0374c… |
package_archive invalidated 2026-11-12T12:19:55Z |
2026-11-12T03:04:45Z | 2026-11-12T11:53:53Z | 6 | 37 (final gate PASS)
|
sale_tar 4795e0dd0ced…checksums 9322697163b9…verify_md 8c1f8c283d60…rebuild_md 80cba7ca6fb6…manifest_txt 25cb5bf3fc98…actions_jsonl d40f5562905c…provenance_md 563033d95e32…assetchain_log_md e9eccaec0c0f…assetchain_log_json 48d058d4a04f… |
[stage_runs]
Rewinds
- 2026-11-12T03:44:50Z:
package_archivetofinalize_docson docs_redo (scripts/redo-docs.py --stage finalize_docs) [stage_events, stage_events #32672] - 2026-11-12T08:49:03Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33272] - 2026-11-12T09:37:05Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33364] - 2026-11-12T11:15:04Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33539] - 2026-11-12T11:42:38Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33629] - 2026-11-12T12:19:55Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py --stage package_archive) [stage_events, stage_events #33728]
Model work per stage
Fully recordedRole: writer model. Calls up to 2026-11-12T11:53:53Z.
213 calls over 5 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | 0 | 6708 | L-A183, L-A15 |
remediate | 2 | 0 | 0 | 1 | 0 | 6582 | L-A183, L-A15 |
admin_handbook | 95 | 49 | 0 | 3 | 15 | 804487 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A155, L-A114, L-A25, L-A15, L-A14 |
db_handbook | 113 | 56 | 0 | 3 | 17 | 940023 | L-A180, L-A181, L-A182, L-A183, L-A184, L-A114, L-A15 |
usecase_validate | 1 | 0 | 0 | 1 | 0 | 1729 | L-A59 |
[micro_step_runs] [lesson_recalls]
Review
Fully recordedRole: review model.
5 rounds, 5 counted, $9.89 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-11-12T08:24:05Z | 0 | 1 | 27 | findings to repackage [held_rounds, held_rounds #1794] | $2.00 | 3 rounds, $40.00 | 5d698b51b3e5… |
| 2 | 2026-11-12T09:06:28Z | 0 | 0 | 19 | clean to repackage [held_rounds, held_rounds #1799] | $2.48 | 3 rounds, $40.00 | 56fe5c7bb7cd… |
| 3 | 2026-11-12T10:52:03Z | 0 | 2 | 7 | findings to repackage [held_rounds, held_rounds #1807] | $2.26 | 3 rounds, $40.00 | 770fdbb492ab… |
| 4 | 2026-11-12T11:21:37Z | 0 | 0 | 5 | clean to repackage [held_rounds, held_rounds #1809] | $1.47 | 3 rounds, $40.00 | fc14bb404cac… |
| 5 | 2026-11-12T11:54:23Z | 0 | 0 | 4 | clean to publish [held_rounds, held_rounds #1814] | $1.69 | 3 rounds, $40.00 | 4795e0dd0ced… |
Defects
Fully recorded- Ledger entries67 [defects, defects where product_slug=haproxy and this tag or chain]
- Disclosed in the archive67 [docs/defects/defects.json, entries]
67 ledger entries: by severity low 64, high 3; by status wont-fix-by-design 1, open 1, fixed-before-release 65.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-haproxy-7483bbc00eUnused third-party device-detection add-ons are removed from the source before the build: addons/51degrees, addons/deviceatlas, addons/wurfl [defects, defects #256534] | low | wont-fix-by-design | build strategy record | — |
RSD-haproxy-358b4bf40cRelease notes: The image's placeholder answer (a build input, unchanged from the previous release) recommends the single-file mount that the handbooks and the kit's own cfg header say never sees edits; the… [defects, defects #260961] | low | open | held review (review model) | — |
RSD-haproxy-afaa38a86aDatabase handbook: The documented reload command fails: -x needs a stats socket the image does not have, there is no pid file, and the old-process handover is refused, so the configuration is not reloaded. [defects, defects #261238] | high | fixed-before-release | held review (review model) | — |
RSD-haproxy-0a87cc7e8aDatabase handbook: Invented mechanism (SIGHUP on a file descriptor passed by the worker) used to introduce a second reload command; contradicts the Operating facts. [defects, defects #261239] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-f1f50ec70aDatabase handbook: Contradicts the Operating facts and Health checks sections: the check does not require HTTP 200 (a paraphrase of the round-3 finding, not fixed here). [defects, defects #261240] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-eab56408cbDatabase handbook: Contradicts the Operating facts and Health checks sections: a 4xx or 5xx answer does not fail the check. [defects, defects #261241] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-7758990cafDatabase handbook: Contradicts the Operating facts: no override or capability is needed for ports below 1024 on the bridge network. [defects, defects #261242] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-e8938a3b06Database handbook: Contradicts the Operating facts: binding ports below 1024 needs no special setup on the bridge network. [defects, defects #261243] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-2051d3b203Admin handbook: Contradicts the Operating facts and the Ports sections of the same handbook. [defects, defects #261244] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-6341c76031Database handbook: Contradicts the Processes sections: the master does not restart the worker. [defects, defects #261245] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-e284c45c8fDatabase handbook: Lists /stats and /metrics as endpoints the container exposes on port 8080, contradicting the later sections: on 8080 both return the placeholder. [defects, defects #261246] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-a0e20b6c5eDatabase handbook: Same as the /stats line: on 8080 /metrics returns the placeholder. [defects, defects #261247] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-7adb42027aDatabase handbook: Contradicts line 825 and the Operating facts: the command shown includes -V, so it prints the confirmation. [defects, defects #261248] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-0db2d5eb5aDatabase handbook: The example answers every path with the Prometheus exporter, so the statistics page at /stats is unreachable; the rule needs `if { path /metrics }` as in the other examples. [defects, defects #261249] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-0ad710b669Database handbook: The advice cannot work for the case it describes (file group 999, mode already 640). [defects, defects #261250] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-df6820c2baDatabase handbook: SIGUSR1 is named as a reload signal; it is the graceful stop signal. [defects, defects #261251] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-307bb8671aDatabase handbook: The image has no `id` command (not in IMAGE_BINARIES.txt), so the command named cannot be run. [defects, defects #261252] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-fc5c2c5fd7Database handbook: Self-contradiction: a restart does not start with an empty configuration. [defects, defects #261253] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-1e07ceac44Database handbook: The example given for a single-file mount is a directory mount, contradicting the paragraph. [defects, defects #261254] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-331bdcbf41Admin handbook: The published mapping does not match the bind it follows (bind :80 needs -p 80:80), so the copy-paste setup does not answer. [defects, defects #261255] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-9b8234eaa0Admin handbook: Implies that publishing port 8404 makes the page reachable; it does not. [defects, defects #261256] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-82b0a37bf8Admin handbook: The command fails for the running container started earlier in the Quick Start, so the next docker run hits a name conflict. [defects, defects #261257] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-be75b7e6b2Admin handbook: The cross-reference points to sections that do not hold the authentication procedure the sentence is about. [defects, defects #261258] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-d63f036fb0Admin handbook: False: docker exec -u root succeeds on this image; a root password is not involved. [defects, defects #261259] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-bde545612bAdmin handbook: Wrong explanation: the container does not run in the host's filesystem. [defects, defects #261260] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-743952a907Admin handbook: Contradicts the Operating facts and REBUILD.md: BUILD_OFFLINE.sh does not use curl. [defects, defects #261261] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-09574053d4Admin handbook: Contradicts the Operating facts: curl is a VERIFY_OFFLINE.sh requirement only. [defects, defects #261262] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-792f1380bdAdmin handbook: False: the loaded image carries no tag, so the command that follows ('start containers from that tag') fails. [defects, defects #261263] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-73688e5de5Admin handbook: Overstates what BUILD_OFFLINE.sh checks (no version checks), and line 2168's Docker 20.10 requirement is unsupported by the records. [defects, defects #261264] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-1cdae61af1Admin handbook: The command given as the remedy checks the same single file the sentence says is insufficient. [defects, defects #261265] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-e486e5048aAdmin handbook: Not fixed from round 1. docs/REBUILD.md Requirements and BUILD_OFFLINE.sh (lines 71-76: docker, jq, Docker daemon arch, `docker buildx version` only) name no Docker Engine version; 20.10 appears in… [defects, defects #263791] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-cb026a1c0bDatabase handbook: Same unsupported 20.10 version claim as ADMIN 2168 (paraphrase); the Operating facts ports text names no Docker Engine version and no record in the archive does. [defects, defects #263792] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-1a7802b3b0Database handbook: src/acme.c (v3.4.6 line 2444) builds `"contact": [ "mailto:%s" ]` from the configured value, and configuration.txt section 12.8 says `contact <string>`: "The contact email". [defects, defects #263793] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-7780300cb4Database handbook: The example that follows (`frontend https` with `bind :8443 ssl crt /etc/haproxy/certs/server.pem`) contains no reference to the `letsencrypt` section, so following it obtains no certificate. [defects, defects #263794] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-e41e99654bDatabase handbook: MANIFEST.txt lines 317-322 list docs/source-acquisition/source/doc/51Degrees-device-detection.txt, DeviceAtlas-device-detection.txt and WURFL-device-detection.txt;… [defects, defects #263795] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-88f6d84ce1Database handbook: Same record: docs/source-acquisition/source/doc/{51Degrees,DeviceAtlas,WURFL}-device-detection.txt are in MANIFEST.txt (lines 317, 318, 322). [defects, defects #263796] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-a2d500e756Database handbook: The archive root listing (README.md, BUILD_OFFLINE.sh, docs/, ...) has no LICENSE; MANIFEST.txt line 91 puts it at docs/source-acquisition/LICENSE. [defects, defects #263797] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-e9d12d577aDatabase handbook: Step 2 of the same section mounts the directory. [defects, defects #263798] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-0387c92ad3Database handbook: Measured with `sed -i` on a directory mount: the reload applied the edit. [defects, defects #263799] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-cabf2cda7fDatabase handbook: The container runs `-f /usr/local/etc/haproxy/haproxy.cfg` (IMAGE_CONFIG.json Cmd). [defects, defects #263800] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-1c2171e7baDatabase handbook: HAProxy loads "all non-hidden *.cfg files" only when `-f` names a directory; the image's default argument is `-f /usr/local/etc/haproxy/haproxy.cfg` (IMAGE_CONFIG.json), so the container does not… [defects, defects #263801] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-b10478ba14Database handbook: Measured: global `chroot /var/empty` -> `[ALERT] Cannot chroot(/var/empty)`, container exited 1; global `user haproxy` + `group haproxy` -> container started (`Failed to drop supplementary groups`… [defects, defects #263802] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-2ee037f4e6Database handbook: Operating facts Ports: "Under Docker's default bridge networking the container's own net.ipv4.ip_unprivileged_port_start is 0, so it can bind 80 and 443 directly ... [defects, defects #263803] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-0a1ab3b0afDatabase handbook: Operating facts Health check: "rs-probe -code exits 0 on any HTTP status". [defects, defects #263804] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-c7f172c3c7Database handbook: Read-only is optional: the Operating facts and the run_note say "read-only is fine", and ADMIN "Mounting Your Configuration"/"Data and Persistence" say "Mount it read-only if you prefer". [defects, defects #263805] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-c2345192cfDatabase handbook: The parenthetical example `-p 80:80 -p 443:443` is identical to the primary one, so it does not map to other host ports. [defects, defects #263806] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-3806be7d84Admin handbook: Measured: `rs-probe -code` -> 200 rc=0; `rs-probe -body http://127.0.0.1:8404/nothing` -> 503 body, "rs-probe: HTTP 503", rc=1; refused connection rc=1. [defects, defects #263807] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-35a2b5adbdAdmin handbook: The next sentences and the Operating facts require a directory mount (a single-file mount never sees edits that replace the file; ADMIN "Important: Mounting Strategy"), so "configuration file"… [defects, defects #263808] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-f5ff8cd986Admin handbook: doc/management.txt of v3.4.6 (docs/source-acquisition/source/doc/management.txt) contains no section on log rotation or syslog socket mounting (grep -i rotat: no match). [defects, defects #263809] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-4a295be2deDatabase handbook: The next command (-f /usr/local/etc/haproxy/conf.d) is given as the default check, but the container's Cmd is `-f /usr/local/etc/haproxy/haproxy.cfg` (IMAGE_CONFIG.json). [defects, defects #267161] | high | fixed-before-release | held review (review model) | — |
RSD-haproxy-6e43cb2984Database handbook: With the documented directory mount the container still runs `-f /usr/local/etc/haproxy/haproxy.cfg` (IMAGE_CONFIG.json Cmd), so it does not load the other *.cfg files; the next sentence of the same… [defects, defects #267162] | high | fixed-before-release | held review (review model) | — |
RSD-haproxy-2f293df564Admin handbook: IMAGE_CONFIG.json Cmd is `-f /usr/local/etc/haproxy/haproxy.cfg`: a conf.d directory next to the file is not loaded by the container, and a directory mount replaces the shipped file rather than… [defects, defects #267163] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-5e43fc6e9cAdmin handbook: Follows 'ensure your configuration is mounted as a directory' (line 809). [defects, defects #267164] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-6c8d941432Database handbook: The paragraph under the step says any way of saving, including sed -i and rename, is seen with the directory mount (measured: sed -i on a directory mount applied after HUP). [defects, defects #267165] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-383d1aec9cAdmin handbook: Measured: global `chroot /var/empty` -> container exited 1 (`Failed to load worker (8) exited with code 1`); global `user haproxy` + `group haproxy` -> container running/healthy, WARNING 'Failed to… [defects, defects #267166] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-f5663bc65aDatabase handbook: Measured on the held digest: `user haproxy`/`group haproxy` -> container running and healthy; `chroot /var/empty` -> exit 1. [defects, defects #267167] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-bca0ad2d3bDatabase handbook: Measured: global `limited-quic` + a frontend whose only bind is `bind quic4@:8443 ssl crt ... [defects, defects #267168] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-89d2bce7bbDatabase handbook: Measured with the example as written (acme section + this frontend): `haproxy -c -V` -> `[ALERT] unable to stat SSL certificate from file 'server.pem' : No such file or directory` (also `acme:… [defects, defects #267169] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-cdf57e3c54Admin handbook: False requirement: a QUIC-only frontend needs only UDP. [defects, defects #267691] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-1febc7213eAdmin handbook: With the files mounted at /usr/local/etc/haproxy the placeholder is hidden, so the default check errors out instead of checking the placeholder. [defects, defects #267692] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-e2d7cd50dbDatabase handbook: 'silently apply the old configuration' is wrong for the -f conf.d case: the reload is not silent (ALERT + 'Failed to load worker' logged) and the old workers keep serving; and the check does not… [defects, defects #267693] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-b732debaccDatabase handbook: The paragraph never says how the container comes to load conf.d; with the documented directory mount and default Cmd (IMAGE_CONFIG.json Cmd -f .../haproxy.cfg) the conf.d files are not loaded, so… [defects, defects #267694] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-284d4f53dfDatabase handbook: Overstated: with a directory mount over /usr/local/etc/haproxy the placeholder is not there to be checked. [defects, defects #267695] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-551b9d5599Admin handbook: Unconditional 'publish the port for both protocols' after a QUIC-only example bind implies a TCP bind is required; DB_HANDBOOK.md:2198 says HAProxy does not require the TCP bind (the round-4 finding… [defects, defects #268451] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-dfdf52ea60Admin handbook: Without --network, docker run attaches the container to the default bridge (outbound access, not isolated). [defects, defects #268452] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-dbb45da470Admin handbook: The 'Configuration Syntax Check' block puts the placeholder `--network <your network>` in a copy-paste command; run as written the shell fails on `<` (syntax error), while the following prose calls… [defects, defects #268453] | low | fixed-before-release | held review (review model) | — |
RSD-haproxy-9bbe401e80Database handbook: IMAGE_CONFIG.json Healthcheck Interval is 10 s; 'every few seconds' is vague and the same handbook says 10 seconds elsewhere (DB:336). [defects, defects #268454] | low | fixed-before-release | held review (review model) | — |
Verification
1 item not recorded- Reproduced before publishingyes (rebuilt digest sha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a · published digest sha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 86) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks artifact_coverage, assetchain_coverage, cosign, cpu_baseline, offline_rebuild, rebuild_manifest, scan_grade, scout_grade_a, script_copies, tag_base_os, thread_exit, trademark_shipped, unpack_files, upgrade_check, vex_shipped) [g8_result.json, result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-11-12T12:20:39Z · failing Docker Scout counts 10 packages with copyleft licences (GPL, LGPL, MPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-11-12T12:20:28Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3822197184 · transparency-log entry
- log index 3822198357 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3832261844 · transparency-log entry · integrated 2026-11-12T12:23:15Z) [ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:bb7c69b0b5d7ae35f2f9f35e86872c750c309d0ef5a1b6e73872bbca69be0d75 · state attached · log index 3832264960 · transparency-log entry
- kind sbom · digest sha256:bb7c69b0b5d7ae35f2f9f35e86872c750c309d0ef5a1b6e73872bbca69be0d75 · state attached · log index 3832267642 · transparency-log entry
- kind vsa · digest sha256:bb7c69b0b5d7ae35f2f9f35e86872c750c309d0ef5a1b6e73872bbca69be0d75 · state attached · log index 3832269893 · transparency-log entry
- kind provenance · digest sha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a · state attached · log index 3832272153 · transparency-log entry
- kind sbom · digest sha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a · state attached · log index 3832274347 · transparency-log entry
- kind vsa · digest sha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a · state attached · log index 3832277056 · transparency-log entry
- Pins recorddocs/PINS.md and docs/provenance/PINS.json in the archive (https://readystack.dev/products/haproxy/recipe) [docs/provenance/PINS.json]
Offline clean-room rebuilds
- 2026-11-12T08:24:10Z on build host 2 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:d5bf35c5dfe7dc8b26d5f3d0d329eb2580fa5d3a10cac8b0e5a186bb74623f3a [clean-room rebuild ledger, runs[781]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
Publication
Fully recorded 1 pending at generation- Image pushed (internal tag), publish_image passed2026-11-12T02:10:32Z [stage_runs, stage_runs chain 994 stage publish_image]
- Archive manifests written2026-11-12T12:22:10Z [PUBLISH_MANIFEST.json, published_at]
- Pending at generation: the archive cut-over on prodasset, the release tag's promotion and the site event (this trail was generated after G8 and before them; they are appended as a 'publication' event in History)
Packages and CPU level
Fully recorded- x86-64 level the image needsv1 (used v4 · baseline v2 · elf files 68 · probed 2026-11-12T02:07:49Z · source build_kit) [release_images, isa_level_hard]
History
2 events- 2026-11-12T12:24:35Z generated: by KitForge release/build_trail.py · generator commit 27badbefbe8aac72eb90e98ea8f843a03c177b52
- 2026-11-12T12:25:49Z publication: promoted at 2026-11-12T12:25:10Z · promoted digest sha256:bb7c69b0b5d7ae35f2f9f35e86872c750c309d0ef5a1b6e73872bbca69be0d75 · promotion method imagetools_create_retag_by_digest_no_rebuild · site event 504 · checklist status complete · checklist at 2026-11-12T12:25:49Z · record workspace: deliverables/provenance/PROMOTION_RECORD.json, RELEASE_CHECKLIST.json
Records
25 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/PINS.json | inside the archive (ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.tar.gz) | — |
MANIFEST.json | beside the archive (prodasset /data/production/haproxy/3.4.6-CE-ubuntu24.04-r7/), as staged for publishing | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/haproxy/3.4.6-CE-ubuntu24.04-r7/), as staged for publishing | — |
ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json | beside the archive (prodasset /data/production/haproxy/3.4.6-CE-ubuntu24.04-r7/), as staged for publishing | — |
ReadyStack-haproxy-3.4.6-CE-ubuntu24.04-r7.rebuild.json.sigstore | beside the archive (prodasset /data/production/haproxy/3.4.6-CE-ubuntu24.04-r7/), as staged for publishing | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/haproxy/3.4.6-CE-ubuntu24.04-r7/), as staged for publishing | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 692 |
chains | sadb, ReadyStack's engine database (not published) | 994 |
defects | sadb, ReadyStack's engine database (not published) | haproxy 3.4.6-CE-ubuntu24.04-r7 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 994 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 994 |
lesson_recalls | sadb, ReadyStack's engine database (not published) | chain 994 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 994 |
release_images | sadb, ReadyStack's engine database (not published) | haproxy 3.4.6-CE-ubuntu24.04-r7 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 994 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 994 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
g8_result.json | the chain's workspace on the controller (not published) | — |