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
This commit is contained in:
parent
e7e054d8d6
commit
b0e6792cf0
9 changed files with 276 additions and 18 deletions
41
workplans/ADHOC-2026-09-14.md
Normal file
41
workplans/ADHOC-2026-09-14.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
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`.
|
||||
|
|
@ -9,7 +9,7 @@ flavor: implementation
|
|||
owner: claude
|
||||
topic_slug: railiance
|
||||
created: "2026-08-29"
|
||||
updated: "2026-09-11"
|
||||
updated: "2026-09-14"
|
||||
depends_on:
|
||||
- AUDIT-WP-0007
|
||||
state_hub_workstream_id: "46a96b03-bc08-53b5-9c93-4071adabf734"
|
||||
|
|
@ -458,6 +458,13 @@ Remaining: token custody, the protected registry entry, operator manifest
|
|||
application, and live ingestion evidence. No secret was created and no
|
||||
production manifest applied.
|
||||
|
||||
**2026-09-14 production blocker:** Informed Decision accept is closed because
|
||||
the live receiver has been Ready=false since 2026-09-11. `/healthz` is 200;
|
||||
`/readyz` hangs past kubelet `timeoutSeconds: 2` (observed >8s). The hang is
|
||||
the chain walk T01 placed on the probe path. Bounded `/readyz` (health only,
|
||||
cached claim, libpq `connect_timeout`) is ADHOC-2026-09-14-T01; T11 still
|
||||
needs a rolled image before live accept can resume.
|
||||
|
||||
|
||||
### Factory sender deployment precondition — 2026-09-11
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue