Repository navigation
Commit 42e7734
Stop npm oracle trees symlinking into a cycle (#582)
The randomized npm-crawler oracle generator gave some pnpm store
entries a node_modules symlink to nm_dirs.first(), which is usually
the importer node_modules that holds the store. Both crawlers follow
an entry's node_modules link, so they walked
.pnpm/<e>/node_modules/.pnpm/<e>/... until the OS refused the path.
Both treat every I/O error as an empty dir, so the oracle comparison
came down to where each walker gave up, not what it found. Seeds 5,
7, 12 and 41 drew this shape; seed 12 failed CI once with the
sequential walker stopping 6 levels short of the new one.
Point the link at a fresh node_modules outside the tree instead, the
same way the vlt store case and the symlinked-scope case already do.
The followed-symlink shape is still generated (16 of 64 seeds), and
the two oracle tests run about 30% faster.
Co-authored-by: Claude <noreply@anthropic.com>1 parent fc356c0 commit 42e7734
1 file changed
Lines changed: 12 additions & 6 deletions
Lines changed: 12 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1336 | 1336 | | |
1337 | 1337 | | |
1338 | 1338 | | |
1339 | | - | |
1340 | | - | |
1341 | | - | |
1342 | | - | |
1343 | | - | |
1344 | | - | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
1345 | 1351 | | |
1346 | 1352 | | |
1347 | 1353 | | |
| |||
0 commit comments