test(browser): measure bounded Chromium process-tree RSS - #73
Draft
seonghobae wants to merge 13 commits into
Draft
test(browser): measure bounded Chromium process-tree RSS#73seonghobae wants to merge 13 commits into
seonghobae wants to merge 13 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial implementation of #28, stacked on PR #72.
Buyer-visible gap
PR #72 measures the ChromeDriver-reported browser root PID, observation bytes, action latency and task duration, but explicitly does not attribute Chromium renderer/GPU/utility descendants. Chromium is multi-process, so root-only RSS materially undercounts the controlled Agent Task.
Dependency
This Draft remains stacked on unchanged exact PR #72 head
1a7186085abe926c1d0e5b22c36760965d6e237band must remain Draft while #72/#71/#70/#65 are active.TDD / RCA sequence
/procprocess-tree discovery, one sampled PID/PPID/RSS snapshot, strict process identity parsing, bounded process-set aggregation, andchromium_process_count/chromium_process_set_rss_bytesevidence.ec5a34ad7ef453879847182e357380dfb8e1312apassed CI but failed Manifest V3 Compatibility run31458268547: Agent Task repeatability was only1/3; trials 2–3 surfaced a caughtValueError.85df93827e187865a136facb6a2fe37e265d4df2added a focused regression for a sampled descendant without resident RSS. CI run31460350048, Rust contracts job93682461842, failed precisely at the new regression withValueError: Linux process set contained unavailable sampled RSS.cbf922fccc83782d3e114ed65afbeb6d84ef5ce6corrected aggregation: a sampled PID withrss_bytes=Noneremains part of process-tree membership/count but contributes no resident bytes; unknown/duplicate/invalid IDs, tree-size overflow, and u64 aggregate overflow remain rejected.VmRSSand strict parser failures such as duplicateVmRSSfields toNone.015e4a5f79c0abee40c6807b481d3afce613c6c4required an optional-RSS parser with the exact contract: absent/zeroVmRSS->None, one positiveVmRSS-> bounded bytes, duplicate/malformedVmRSS-> fail closed. CI run31462156163, Rust contracts job93687687157, produced the intended RED at the missing parser boundary (KeyError).ceb1c72cf0f91ca8723bb5b3029044dae5d185b5; it requires absence and zero to remain representable while malformed units/shape/value, duplicate fields, and overflow are rejected.e5fabfd57387ec7d2db692961eda93c95cf8d886implements_parse_linux_proc_status_optional_rss_bytesand makes_snapshot_linux_process_evidenceuse it directly. The previous string-matching exception normalization is removed, so ambiguous/malformed sampled evidence fails closed instead of becoming a false nonresident state.Current exact-head proof
On exact current head
e5fabfd57387ec7d2db692961eda93c95cf8d886against unchanged exact prerequisite #72 head1a7186085abe926c1d0e5b22c36760965d6e237b:31464241922: success;93693702956: success, with the job log confirming checkout of exact heade5fabfd57387ec7d2db692961eda93c95cf8d886; repository Python contracts, formatting, locked workspace/all-target check, full tests, strict Clippy, and rustdoc all passed;93693703022: success, including exact owned production function/line/region/branch enforcement;31464241924: success on the same exact head;No predecessor-head result is transferred to this exact head. The earlier RED evidence remains part of the TDD lineage; the current exact head separately supplies the source correction and fresh GREEN proof.
Remaining dependency before Ready
The parser-integrity defect is closed on this branch, but the PR remains Draft because it is stacked on still-active #72/#71/#70/#65. Do not mark this branch Ready or integrate it independently until those prerequisite identities are resolved in dependency order and this head is revalidated against the resulting live base.
Truth boundary
This remains controlled Linux CI evidence, not product process-attribution authority. The metric sums resident RSS only for processes present in one bounded
/proclineage snapshot under the ChromeDriver-issued browser root. A sampled descendant with no resident RSS may remain counted as process-tree membership rather than making the whole fixture nondeterministically fail; malformed or ambiguous sampled evidence fails closed. This does not prove per-tab/task CPU or RSS ownership, cgroup ownership, GPU/VRAM, JS heap, cross-platform semantics, or compose the product #51/#66 resource contracts. No whole-task RSS claim is permitted until a trusted product adapter owns process attribution.