[BUG] Standalone dependency setup selects an unusable shallow cache #51

Open
opened 2026-09-15 19:23:40 +02:00 by erikinkinen · 0 comments
Owner

Summary

Standalone dependency preparation can select a shallow local helper checkout as a complete commit transport. Git rejects the required shallow-root update, leaving FETCH_HEAD unresolved; Rootd CI fails before compilation.

Reproduction

Rootd push/review CI 1021/1022 at 3bf295a05b587970bcd96f307c194c85caff85e0 both use Integration helper 2a16b1a7ac5514a43582025e5b9ba0a2f2ce2a29. Both complete test logs show the shallow-root rejection and FETCH_HEAD resolution status 128. A new offline regression using real temporary Git repositories also fails against the unchanged selector: it chooses the shallow cache instead of the declared complete source.

Expected and actual behavior

Only a complete local cache containing the exact requested commit may supply original Cargo history. A shallow cache must remain untouched; use the explicit canonical catalog URL without following the cache's configured remote. Unavailable complete history must remain failure. The original selector checks object presence alone and chooses an unusable source.

Environment and identity

  • Rootd revision: 3bf295a05b587970bcd96f307c194c85caff85e0.
  • Integration helper/runtime revision: 2a16b1a7ac5514a43582025e5b9ba0a2f2ce2a29.
  • Rootd CI 1021/1022, Linux x86_64 Rust container, Git 2.47.3.
  • Local reproduction uses isolated real Git repositories and no external transport.

Evidence and prior checks

Both terminal Rootd runs have complete retained logs; Markdown passes. No Rootd compilation, unit tests or image checks execute in these failed CI jobs. The original failed host regression is retained independently. The correction rejects shallow cache selection before fetch, preserving original commit identity and the existing complete-history mirror requirement. Controls cover complete-cache reuse, parent history, mirror identity, untouched cache state and failure when the canonical source is unavailable.

Signed helper cdf15c52f24bd463dcabdddb945f779fff4ab367 excludes shallow local caches before an exact dependency fetch. It preserves the cache, selects the canonical catalog URL without following cache remotes, and requires original complete history. Three new real-Git controls and all 162 helper commands pass, along with 320/321 Rust tests per development/release configuration, strict host/native Clippy, four native builds, formatting, private rustdoc and Markdown with no warnings. Actual Rootd standalone preparation also passes using a shallow helper fixture and complete original Cargo metadata. Runtime library 2a16b1a7ac5514a43582025e5b9ba0a2f2ce2a29 and product catalogs remain unchanged. Full Integration CI for this helper commit is pending; no new VM or guest build is claimed.

Continued original CI failures — 16 September 2026: Integration 1636 at cdf15c52f24bd463dcabdddb945f779fff4ab367 passes all 486 catalog scenarios and earlier native probes, then the development COM1 directory gate fails after command 5 injection. Three complete warning-free logs total 13,307,223 bytes; bug #56 preserves its exact status and remaining diagnosis. Paired CI 1635 retains the separate release shell-line failure in bug #55; both original runs are terminal, with all six logs retained.

Integration 1637 at 38424571b76b36c1e631d99fd2c859fb32311eea passes 408/486 catalog scenarios and fails 78 during version-22 producer/version-21 catalog-shell preparation. Three complete warning-free logs total 13,031,316 bytes and retain 78 layout refusals. Bug #57 tracks coherent adoption after the source/frame/runtime prerequisites. Mixed-layout rejection remains required. The same paired CI 1638 remains live; later queued runs retain their original handles and observation policies. No retry, timer relaxation or full Integration acceptance is claimed.

Tracking

Owning source audit: #1. Integration review: #12. Affected Rootd review: erix/rootd#2. The scanner correction at erix/rootd#3 is independently closed after matching CI. This bug requires validated signed helper publication, consumer adoption and complete warning-free CI.

Rootd adopts the signed helper in c458c155ef5403fbedff625672be79017d0c9afb while retaining its runtime-library pin. 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. Complete Integration helper CI remains outstanding, so this report stays open for that validation; current outcomes are recorded below.

Continued same-run observation — 16 September 2026: CI 1635 at the signed helper head completes dependency setup, Rust checks and all 486 catalog scenarios, then fails the separate release COM1 shell-line gate recorded in issue 55. All three terminal logs are complete (13,303,150 bytes) with no warnings. CI 1636 remains running at observation 13. This does not establish complete helper CI or close the original source-selection report.

## Summary Standalone dependency preparation can select a shallow local helper checkout as a complete commit transport. Git rejects the required shallow-root update, leaving FETCH_HEAD unresolved; Rootd CI fails before compilation. ## Reproduction Rootd push/review CI 1021/1022 at `3bf295a05b587970bcd96f307c194c85caff85e0` both use Integration helper `2a16b1a7ac5514a43582025e5b9ba0a2f2ce2a29`. Both complete test logs show the shallow-root rejection and FETCH_HEAD resolution status 128. A new offline regression using real temporary Git repositories also fails against the unchanged selector: it chooses the shallow cache instead of the declared complete source. ## Expected and actual behavior Only a complete local cache containing the exact requested commit may supply original Cargo history. A shallow cache must remain untouched; use the explicit canonical catalog URL without following the cache's configured remote. Unavailable complete history must remain failure. The original selector checks object presence alone and chooses an unusable source. ## Environment and identity - Rootd revision: `3bf295a05b587970bcd96f307c194c85caff85e0`. - Integration helper/runtime revision: `2a16b1a7ac5514a43582025e5b9ba0a2f2ce2a29`. - Rootd CI 1021/1022, Linux x86_64 Rust container, Git 2.47.3. - Local reproduction uses isolated real Git repositories and no external transport. ## Evidence and prior checks Both terminal Rootd runs have complete retained logs; Markdown passes. No Rootd compilation, unit tests or image checks execute in these failed CI jobs. The original failed host regression is retained independently. The correction rejects shallow cache selection before fetch, preserving original commit identity and the existing complete-history mirror requirement. Controls cover complete-cache reuse, parent history, mirror identity, untouched cache state and failure when the canonical source is unavailable. Signed helper `cdf15c52f24bd463dcabdddb945f779fff4ab367` excludes shallow local caches before an exact dependency fetch. It preserves the cache, selects the canonical catalog URL without following cache remotes, and requires original complete history. Three new real-Git controls and all 162 helper commands pass, along with 320/321 Rust tests per development/release configuration, strict host/native Clippy, four native builds, formatting, private rustdoc and Markdown with no warnings. Actual Rootd standalone preparation also passes using a shallow helper fixture and complete original Cargo metadata. Runtime library `2a16b1a7ac5514a43582025e5b9ba0a2f2ce2a29` and product catalogs remain unchanged. Full Integration CI for this helper commit is pending; no new VM or guest build is claimed. Continued original CI failures — 16 September 2026: Integration 1636 at `cdf15c52f24bd463dcabdddb945f779fff4ab367` passes all 486 catalog scenarios and earlier native probes, then the development COM1 directory gate fails after command 5 injection. Three complete warning-free logs total 13,307,223 bytes; [bug #56](https://git.erikinkinen.fi/erix/integration/issues/56) preserves its exact status and remaining diagnosis. Paired CI 1635 retains the separate release shell-line failure in [bug #55](https://git.erikinkinen.fi/erix/integration/issues/55); both original runs are terminal, with all six logs retained. Integration 1637 at `38424571b76b36c1e631d99fd2c859fb32311eea` passes 408/486 catalog scenarios and fails 78 during version-22 producer/version-21 catalog-shell preparation. Three complete warning-free logs total 13,031,316 bytes and retain 78 layout refusals. [Bug #57](https://git.erikinkinen.fi/erix/integration/issues/57) tracks coherent adoption after the source/frame/runtime prerequisites. Mixed-layout rejection remains required. The same paired CI 1638 remains live; later queued runs retain their original handles and observation policies. No retry, timer relaxation or full Integration acceptance is claimed. ## Tracking Owning source audit: https://git.erikinkinen.fi/erix/integration/issues/1. Integration review: https://git.erikinkinen.fi/erix/integration/pulls/12. Affected Rootd review: https://git.erikinkinen.fi/erix/rootd/pulls/2. The scanner correction at https://git.erikinkinen.fi/erix/rootd/issues/3 is independently closed after matching CI. This bug requires validated signed helper publication, consumer adoption and complete warning-free CI. Rootd adopts the signed helper in `c458c155ef5403fbedff625672be79017d0c9afb` while retaining its runtime-library pin. 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. Complete Integration helper CI remains outstanding, so this report stays open for that validation; current outcomes are recorded below. Continued same-run observation — 16 September 2026: CI 1635 at the signed helper head completes dependency setup, Rust checks and all 486 catalog scenarios, then fails the separate release COM1 shell-line gate recorded in [issue 55](https://git.erikinkinen.fi/erix/integration/issues/55). All three terminal logs are complete (13,303,150 bytes) with no warnings. CI 1636 remains running at observation 13. This does not establish complete helper CI or close the original source-selection report.
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/integration#51
No description provided.