audit-core/workplans/ADHOC-2026-09-14.md
tegwick b0e6792cf0
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Bound /readyz so kubelet probes cannot hang the Service
/readyz walked the hash chain and opened pooled connections with no
libpq connect_timeout, so a 2s kubelet probe never saw a response and
the pod stayed unready. Informed Decision accept is blocked on that.

Probe health() only, under a 1.5s budget, publish last-known
tamper_evidence, and fail TCP handshake in 1s. Integrity stays on
/v1/integrity.

Assistant: grok
Assistant-Session: 01a0a182-bab7-7f11-b32b-d06f3af52082
2026-09-14 22:13:55 +02:00

41 lines
1.2 KiB
Markdown

---
id: ADHOC-2026-09-14
type: workplan
title: "Ad hoc tasks 2026-09-14"
domain: infotech
repo: audit-core
status: finished
flavor: implementation
owner: grok
topic_slug: railiance
created: "2026-09-14"
updated: "2026-09-14"
---
# Ad hoc tasks 2026-09-14
## Bound /readyz so the Service can become Ready
```task
id: ADHOC-2026-09-14-T01
status: done
priority: high
```
Inbox from grok (INFD-WP-0002-T03): `audit-core` Service has no ready
endpoints. The live pod is Ready=false since 2026-09-11T08:27:26Z;
`/healthz` is 200; `/readyz` hangs >8s against kubelet `timeoutSeconds: 2`.
Informed Decision accept is 503 `approval_path_not_connected` until a ready
endpoint exists.
Cause: `/readyz` called `retention_policy`, which walks the hash chain and
opens a pooled connection with no libpq `connect_timeout` and a 30s
statement timeout. A hung walk or handshake looks the same as down.
Change: `/readyz` checks `health()` (`SELECT 1`) under a 1.5s budget,
publishes last-known `tamper_evidence` without walking, and sets
`connect_timeout=1`. Integrity stays on `/v1/integrity`. Production needs a
receiver image rebuild and rollout after this lands.
Evidence: Informed Decision
`docs/evidence/2026-09-14-infd-0002-t03-bind-path-probe.json`.