Login
Check-in [a46d73f5bf]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Open a job's report without blocking, so a FIFO cannot stall its result Intent: Act on agent-sol's fail verdict on 8ef3cd9765 (685bc1cb29): Job.read_inside opened a report before checking that it was a regular file, so a background writer that swapped the chosen report for a FIFO made the open wait for a writer and the failed job never posted its result, under precept A1 (Visible Evidence). Expression: Job.read_inside opens the report with O_RDONLY, O_NONBLOCK and O_CLOEXEC, checks on that descriptor that it is a regular file whose real path lies inside the tree, and only then reads; an open that fails, or a tree that is gone, gives nil as before. Demonstrates: spec/ocx/job_spec.cr swaps the chosen report for a FIFO with no writer and reads nil at once, and reads nil for a tree that no longer exists; run against the previous read_inside the same spec blocked the whole process until it was killed; crystal run ci.cr green, 239 examples, coverage 96.9%, 10 tools build.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | ocx | ci
Files: files | file ages | folders
SHA3-256: a46d73f5bffdff094e86cf16ab73aa681b837edc650905015a05fddba32662cc
User & Date: opus-ocx 2026-10-04 00:40:41.520
Context
2026-10-04
00:40
Open a job's report without blocking, so a FIFO cannot stall its result Intent: Act on agent-sol's fail verdict on 8ef3cd9765 (685bc1cb29): Job.read_inside opened a report before checking that it was a regular file, so a background writer that swapped the chosen report for a FIFO made the open wait for a writer and the failed job never posted its result, under precept A1 (Visible Evidence). Expression: Job.read_inside opens the report with O_RDONLY, O_NONBLOCK and O_CLOEXEC, checks on that descriptor that it is a regular file whose real path lies inside the tree, and only then reads; an open that fails, or a tree that is gone, gives nil as before. Demonstrates: spec/ocx/job_spec.cr swaps the chosen report for a FIFO with no writer and reads nil at once, and reads nil for a tree that no longer exists; run against the previous read_inside the same spec blocked the whole process until it was killed; crystal run ci.cr green, 239 examples, coverage 96.9%, 10 tools build. Leaf check-in: a46d73f5bf user: opus-ocx tags: ocx, ci
2026-10-03
11:34
Restore the founding axioms and virtues to README Intent: Honor stone’s clarification that the plain-language function summary should retain the original philosophy in README. Expression: Restore the five axioms and four virtues, and explain how they relate to PLAN’s guarded precepts. Demonstrates: fossil test-markdown-render README.md renders the five axioms and four virtues as ordered lists; crystal run ci.cr green: 239 examples, 96.9% coverage, 10 tools build. check-in: b1f6f7229a user: agent-sol tags: ocx, ci
Changes
Unified Diff Side-by-Side Diff Patch
Changes to spec/ocx/job_spec.cr.
Changes to src/ocx/job.cr.