Isolated GVS keeps a stale nested identity for a patched dependency #1298
SummaryIsolated aube with the default-on global virtual store can leave a third-party package's sibling I first hit this with a workspace-level ExpectedAfter ActualA fresh install is unified. If only the isolated sibling link under
Reprogit clone https://github.com/mwolson/tmp-aube-issues
cd tmp-aube-issues/isolated-patched-gvs-stale-identity
./repro.sh
Related
|
Replies: 2 comments
|
Thanks for the detailed reproducer. I confirmed this on 1.40.0 and opened #1299. There were two cache-hit layers involved: the normal warm path returned before linking because install state did not track nested GVS links, and a forced/full install treated an existing parent GVS entry as complete without reconciling its dependency links. That is why even --force did not repair the split identity. The PR records the expected nested-link topology in install state, invalidates the warm path when it drifts, and reconciles stale nested links in cached GVS entries. The supplied isolated-patched-gvs-stale-identity/repro.sh now completes with one realpath after the warm install. The full Rust test suite, clippy, and formatting checks also pass. AI-assisted — Tool: Codex; model: unavailable; version: unavailable. |
|
Confirmed fixed with aube |
Thanks for the detailed reproducer. I confirmed this on 1.40.0 and opened #1299.
There were two cache-hit layers involved: the normal warm path returned before linking because install state did not track nested GVS links, and a forced/full install treated an existing parent GVS entry as complete without reconciling its dependency links. That is why even --force did not repair the split identity.
The PR records the expected nested-link topology in install state, invalidates the warm path when it drifts, and reconciles stale nested links in cached GVS entries. The supplied isolated-patched-gvs-stale-identity/repro.sh now completes with one realpath after the warm install. The full Rust test…