[BUG] Artifact boundary scans can misclassify stream failures #3

Closed
opened 2026-09-15 19:11:43 +02:00 by erikinkinen · 0 comments
Owner

Summary

The production artifact boundary scanner can misclassify a stream failure as absence of a forbidden marker. This is a build-validation defect; no runtime capability defect or accepted hostile product image is demonstrated. A concrete local correction and behavioral regressions are complete.

Reproduction

The retained original pipeline probe and direct marker control disagree about a known synthetic marker. The corrected real-checker regression suite covers early/late markers in baseline and interactive-product artifacts, forbidden module names, producer errors and scanner errors. Run python3 -m unittest discover -s tests -p 'production_boundary_scan_test.py' with the explicitly selected pinned Integration helpers described in README.

Expected and actual behavior

A forbidden marker must reject the selected artifact. Extraction and scan errors must fail validation, and partial invocation-owned artifacts must be retired. The correction captures each object's complete checked string receipt once, scans that regular file, distinguishes no match from scan failure, and cleans both objects and receipts. It also removes an unused Integration path-patch override in favor of original pinned Cargo sources.

Environment and identity

  • Original Rootd revision: ef30c1bdf5e25f1c00e1a7644967d476cfb74a6c.
  • Linux x86_64 host; synthetic compiler/tool fixtures are explicit test inputs.
  • The full existing stale-object control also executes the actual production and interactive-product object builds.
  • No VM or product image was executed for this scanner correction.

Evidence and prior checks

Four new behavioral tests cover the marker positions, producer/scanner failures, extraction reuse and cleanup. All 62 Python tests pass. The complete default/all, runtime, release-image, interactive-product and development-console matrices pass strict host/native Clippy and twelve native builds. Private rustdoc and formatting pass without warnings. The semantic bootstrap, threat model, phase and operation-ownership gates pass unchanged; native authority and Rust implementation files are unchanged. The technical manual is being updated alongside the component documents.

Signed Rootd c458c155ef5403fbedff625672be79017d0c9afb selects helper cdf15c52f24bd463dcabdddb945f779fff4ab367 in its workflow and denies Rust, rustdoc and Python diagnostics. Runtime sources and dependency pins are byte-identical to scanner checkpoint 3bf295a05b587970bcd96f307c194c85caff85e0. The repeated default/all development/release Rust matrix and all 62 Python/bootstrap checks pass; the earlier twelve native configurations retain their unchanged inputs. Rootd CI 1023/1024 passes at the corrected head with all four complete classified logs and no warnings; the original shallow dependency preparation now completes, all 62 Python checks run, and the actual artifact/semantic boundary gates pass. The original failed 1021/1022 logs remain retained under Integration issue #51.

Tracking

Owning audit: #1. Signed correction: 3bf295a05b587970bcd96f307c194c85caff85e0. Owning review: #2. The scanner correction is accepted by complete matching CI; the report is closed at that scope. Coherent product-image adoption remains a separate acceptance requirement.

Rootd CI 1021/1022 fails during dependency preparation before compilation; complete logs identify the separate shallow-cache defect at erix/integration#51. Local scanner and strict component results remain valid at their stated scope. Complete corrected CI is required.

## Summary The production artifact boundary scanner can misclassify a stream failure as absence of a forbidden marker. This is a build-validation defect; no runtime capability defect or accepted hostile product image is demonstrated. A concrete local correction and behavioral regressions are complete. ## Reproduction The retained original pipeline probe and direct marker control disagree about a known synthetic marker. The corrected real-checker regression suite covers early/late markers in baseline and interactive-product artifacts, forbidden module names, producer errors and scanner errors. Run `python3 -m unittest discover -s tests -p 'production_boundary_scan_test.py'` with the explicitly selected pinned Integration helpers described in README. ## Expected and actual behavior A forbidden marker must reject the selected artifact. Extraction and scan errors must fail validation, and partial invocation-owned artifacts must be retired. The correction captures each object's complete checked string receipt once, scans that regular file, distinguishes no match from scan failure, and cleans both objects and receipts. It also removes an unused Integration path-patch override in favor of original pinned Cargo sources. ## Environment and identity - Original Rootd revision: `ef30c1bdf5e25f1c00e1a7644967d476cfb74a6c`. - Linux x86_64 host; synthetic compiler/tool fixtures are explicit test inputs. - The full existing stale-object control also executes the actual production and interactive-product object builds. - No VM or product image was executed for this scanner correction. ## Evidence and prior checks Four new behavioral tests cover the marker positions, producer/scanner failures, extraction reuse and cleanup. All 62 Python tests pass. The complete default/all, runtime, release-image, interactive-product and development-console matrices pass strict host/native Clippy and twelve native builds. Private rustdoc and formatting pass without warnings. The semantic bootstrap, threat model, phase and operation-ownership gates pass unchanged; native authority and Rust implementation files are unchanged. The technical manual is being updated alongside the component documents. Signed Rootd `c458c155ef5403fbedff625672be79017d0c9afb` selects helper `cdf15c52f24bd463dcabdddb945f779fff4ab367` in its workflow and denies Rust, rustdoc and Python diagnostics. Runtime sources and dependency pins are byte-identical to scanner checkpoint `3bf295a05b587970bcd96f307c194c85caff85e0`. The repeated default/all development/release Rust matrix and all 62 Python/bootstrap checks pass; the earlier twelve native configurations retain their unchanged inputs. Rootd CI 1023/1024 passes at the corrected head with all four complete classified logs and no warnings; the original shallow dependency preparation now completes, all 62 Python checks run, and the actual artifact/semantic boundary gates pass. The original failed 1021/1022 logs remain retained under Integration issue #51. ## Tracking Owning audit: https://git.erikinkinen.fi/erix/rootd/issues/1. Signed correction: `3bf295a05b587970bcd96f307c194c85caff85e0`. Owning review: https://git.erikinkinen.fi/erix/rootd/pulls/2. The scanner correction is accepted by complete matching CI; the report is closed at that scope. Coherent product-image adoption remains a separate acceptance requirement. Rootd CI 1021/1022 fails during dependency preparation before compilation; complete logs identify the separate shallow-cache defect at https://git.erikinkinen.fi/erix/integration/issues/51. Local scanner and strict component results remain valid at their stated scope. Complete corrected CI is required.
Sign in to join this conversation.
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
erix/rootd#3
No description provided.