Specify coordinated worker resource and parent lifetime contract
This commit is contained in:
1 parent
f84fe0a3f2
commit
688b5dc519
1 file changed
+23
@@ -77,3 +77,26 @@ preservation, version/hash/location/size failures and truncated frames. Strict
|
|||||||
all-target Clippy, Rust formatting and diff checks passed. Product extraction
|
all-target Clippy, Rust formatting and diff checks passed. Product extraction
|
||||||
defaults and code/text parsing are unchanged. No separate worker was launched;
|
defaults and code/text parsing are unchanged. No separate worker was launched;
|
||||||
process isolation and resource ceilings remain open.
|
process isolation and resource ceilings remain open.
|
||||||
|
|
||||||
|
## Worker and parent implementation contract
|
||||||
|
|
||||||
|
The next slice adds a separate `searchi-extract-worker` binary and a shared-core
|
||||||
|
parent adapter. Neither changes indexing defaults until integration and packaging
|
||||||
|
are complete. The adapter owns the child and three bounded I/O tasks; its total
|
||||||
|
deadline covers input writes, response/diagnostic reads and process exit. Cancel,
|
||||||
|
timeout, resource failure and malformed protocol remain distinct failures.
|
||||||
|
|
||||||
|
Windows uses a parent-owned Job Object with a 512-MiB process commitment limit
|
||||||
|
and kill-on-close. The parent assigns the job before writing input. The worker
|
||||||
|
reads only the four-byte frame prefix before checking current job membership and
|
||||||
|
limits, then admits the header/payload. Prefix arrival synchronizes job setup
|
||||||
|
without allowing document parsing first. It fails closed when protection is
|
||||||
|
missing. Unix applies address-space and CPU limits before input; actual macOS
|
||||||
|
semantics still require evidence. The proposed wall deadline is at most 30 s.
|
||||||
|
|
||||||
|
The worker handles one request and no path arguments. Extra arguments/input,
|
||||||
|
wrong framing or an unprotected Windows launch fail explicitly. Successful
|
||||||
|
parsing or structured parser rejection must produce one bounded, flushed frame;
|
||||||
|
the parent independently checks EOF and exit status. None of these limits is a
|
||||||
|
filesystem/network sandbox or proof that every malicious parser input is safe.
|
||||||
|
The helper does not add arbitrary file reads or writes to its application API.
|
||||||
Reference in new issue
Block a user