Bound Ptah durable cache and equivalence copies; sample cycle memory peaks #673

Merged
toasterson merged 2 commits from fix/ptah-memory-round16 into main 2026-10-19 12:07:09 +00:00
Owner

Ptah on ffdf032a reached its 3 GiB cgroup limit repeatedly after the #670 rule-join fix. The first two OOM boundaries follow rule/equivalence completion and persistence start; a third at 08:24:33Z follows 12,886 learned equivalences and consolidation start. Metrics show memory growing across repeated cycles. The exact fatal allocation remains unproven.

Bound redb's rebuildable cache to 64 MiB instead of its 1 GiB default, and borrow equivalence fingerprints instead of copying every predicate/object string a second time. Preserve ACID data, matching behavior, the existing rule candidate budget, and all enabled functionality. Add constant-space 100 ms memory sampling around every daemon task and relational snapshot, including periodic high-water records for cycles killed before completion. Sampled cycle peaks and the process-lifetime high-water mark are named separately.

Validation: small-cache eviction/reopen regression over 6 MiB of data; shared-fingerprint equivalence regression; sampler parser/lifecycle regressions; existing durable/equivalence/rule tests. Local validation: 75 executed, zero failed/ignored (2 sampler, 13 durable, 16 equivalence, 44 rule-engine). Disk guard minimum 32.315 GiB. Formatting and diff checks pass. Exact-head Solstice CI remains pending. This is bounded mitigation plus instrumentation, not a proven sole-cause diagnosis. Main image build and a Ptah-only Talos pin PR precede a fresh zero-restart 60-minute acceptance window. No resource bump or MausBot activation is included.

Private log/metric hashes and the bounded conclusions are recorded in docs/ops/ptah-memory-round16/.

Initial head 0ceef3e5 had two Solstice failures before checkout due TCP refusal, not a product test. Talos #234 is now merged at bcf011be and accepted with two Ready external endpoints on separate nodes, zero restarts and complete fresh 20/36 registry verification. Documentation follow-up f5852146 records that repair and starts fresh CI; all six implementation files are byte-identical to 0ceef3e5. No blind rerun or status rewrite was used.

Live follow-up: the third baseline restart filled the inherited 512 MiB tmpfs with quarantined local redb images and partial hydration retries. Each complete local image is about 193 MiB plus 64 MiB symbols. The later Talos pin will keep one forensic predecessor and size the RAM-only cache for the derived ~644 MiB hydration transient, with margin; container memory remains 3 GiB. Three closed old images are privately preserved. This storage correction and main release are separate from source CI acceptance.

Shared CI investigation found healthy Forgejo Actions polling and a saturated five-VM executor, not a stuck webhook receiver. Fresh exact-head Akh and Anima jobs now run after ingress HA without rerun, dispatcher restart or status rewrite. All required checks still must pass before merge.

Ptah on ffdf032a reached its 3 GiB cgroup limit repeatedly after the #670 rule-join fix. The first two OOM boundaries follow rule/equivalence completion and persistence start; a third at 08:24:33Z follows 12,886 learned equivalences and consolidation start. Metrics show memory growing across repeated cycles. The exact fatal allocation remains unproven. Bound redb's rebuildable cache to 64 MiB instead of its 1 GiB default, and borrow equivalence fingerprints instead of copying every predicate/object string a second time. Preserve ACID data, matching behavior, the existing rule candidate budget, and all enabled functionality. Add constant-space 100 ms memory sampling around every daemon task and relational snapshot, including periodic high-water records for cycles killed before completion. Sampled cycle peaks and the process-lifetime high-water mark are named separately. Validation: small-cache eviction/reopen regression over 6 MiB of data; shared-fingerprint equivalence regression; sampler parser/lifecycle regressions; existing durable/equivalence/rule tests. Local validation: 75 executed, zero failed/ignored (2 sampler, 13 durable, 16 equivalence, 44 rule-engine). Disk guard minimum 32.315 GiB. Formatting and diff checks pass. Exact-head Solstice CI remains pending. This is bounded mitigation plus instrumentation, not a proven sole-cause diagnosis. Main image build and a Ptah-only Talos pin PR precede a fresh zero-restart 60-minute acceptance window. No resource bump or MausBot activation is included. Private log/metric hashes and the bounded conclusions are recorded in `docs/ops/ptah-memory-round16/`. Initial head 0ceef3e5 had two Solstice failures before checkout due TCP refusal, not a product test. Talos #234 is now merged at bcf011be and accepted with two Ready external endpoints on separate nodes, zero restarts and complete fresh 20/36 registry verification. Documentation follow-up f5852146 records that repair and starts fresh CI; all six implementation files are byte-identical to 0ceef3e5. No blind rerun or status rewrite was used. Live follow-up: the third baseline restart filled the inherited 512 MiB tmpfs with quarantined local redb images and partial hydration retries. Each complete local image is about 193 MiB plus 64 MiB symbols. The later Talos pin will keep one forensic predecessor and size the RAM-only cache for the derived ~644 MiB hydration transient, with margin; container memory remains 3 GiB. Three closed old images are privately preserved. This storage correction and main release are separate from source CI acceptance. Shared CI investigation found healthy Forgejo Actions polling and a saturated five-VM executor, not a stuck webhook receiver. Fresh exact-head Akh and Anima jobs now run after ingress HA without rerun, dispatcher restart or status rewrite. All required checks still must pass before merge.
Bound Ptah persistence cache and equivalence copies; sample cycle memory
Some checks failed
CI / test-sokar-sharing (pull_request) Successful in 3m55s
CI / test-native-receiver-isolation (pull_request) Successful in 5m42s
CI / test-native-client-computer (pull_request) Successful in 7m44s
CI / test-sokar (pull_request) Successful in 8m34s
CI / docker-seshd (pull_request) Failing after 5m16s
CI / publish-chart (pull_request) Failing after 1m11s
CI / check-seshat (pull_request) Successful in 12m18s
CI / platform-images-home (pull_request) Has been cancelled
CI / platform-images-core (pull_request) Has been cancelled
CI / platform-images-daemons (pull_request) Has been cancelled
CI / platform-images-fleet (pull_request) Has been cancelled
CI / platform-images-collect (pull_request) Has been cancelled
CI / check-akh-medu (pull_request) Has been cancelled
CI / docker-akh-transcripts (pull_request) Has been cancelled
CI / test-akh-medu (pull_request) Has been cancelled
CI / test-session-platform (pull_request) Has been cancelled
CI / docker-sokard (pull_request) Has been cancelled
0ceef3e5a3
Record verified ingress repair before fresh Ptah CI
All checks were successful
CI / check-seshat (pull_request) Successful in 2m19s
CI / test-native-client-computer (pull_request) Successful in 6m38s
CI / test-native-receiver-isolation (pull_request) Successful in 10m8s
CI / test-sokar-sharing (pull_request) Successful in 9m58s
CI / check-akh-medu (pull_request) Successful in 6m17s
CI / publish-chart (pull_request) Successful in 48s
CI / test-sokar (pull_request) Successful in 11m23s
CI / docker-akh-transcripts (pull_request) Successful in 13m26s
CI / docker-sokard (pull_request) Successful in 16m45s
CI / test-session-platform (pull_request) Successful in 29m45s
CI / docker-seshd (pull_request) Successful in 38m10s
CI / test-akh-medu (pull_request) Successful in 40m3s
CI / platform-images-home (pull_request) Successful in 52s
CI / platform-images-daemons (pull_request) Successful in 11m8s
CI / platform-images-core (pull_request) Successful in 13m32s
CI / platform-images-fleet (pull_request) Successful in 1m6s
CI / platform-images-collect (pull_request) Successful in 48s
f585214628
Sign in to join this conversation.
No reviewers
No labels
follow-up
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
toasterson/akh-medu!673
No description provided.