-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Closed
Labels
needs-mreNeeds more information for reproduction, see #9452Needs more information for reproduction, see #9452
Description
Summary
It appears the hash rather than package name change in #11738 introduced a bug in find_archive_references() and cache pruning now removes some libraries that are still in use. I created the following test file to demonstrate the issue:
#!/bin/bash
set -eu
VER="$1"
rm -rf "$VER"
uv venv "$VER"
cd "$VER"
source bin/activate
set -x
uv pip install "uv==$VER"
bin/uv --version
UV_LINK_MODE=symlink bin/uv pip install zstandard
symlinks lib/python3.*/site-packages/zstandard
bin/uv cache -v prune
symlinks lib/python3.*/site-packages/zstandardWhen running this with ./uv-test.sh 0.6.4 I get the following output:
Using CPython 3.11.12 interpreter at: /opt/Python/bin/python3
Creating virtual environment at: 0.6.4
+ uv pip install uv==0.6.4
Using Python 3.11.12 environment at:
Resolved 1 package in 1.00s
Prepared 1 package in 8.45s
Installed 1 package in 2ms
+ uv==0.6.4
+ bin/uv --version
uv 0.6.4
+ bin/uv pip install zstandard
Using Python 3.11.12 environment at:
Resolved 1 package in 604ms
Prepared 1 package in 2.25s
Installed 1 package in 3ms
+ zstandard==0.23.0
+ symlinks lib/python3.11/site-packages/zstandard
other_fs: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so
other_fs: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/__init__.py -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/__init__.py
other_fs: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so
other_fs: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/backend_cffi.py -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/backend_cffi.py
other_fs: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/py.typed -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/py.typed
other_fs: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/__init__.pyi -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/__init__.pyi
+ bin/uv cache -v prune
DEBUG uv 0.6.4
Pruning cache at: /home/remote-user/.cache/uv
DEBUG Removing dangling cache bucket: /home/remote-user/.cache/uv/wheels-v4
DEBUG Removing dangling cache archive: /app/data/wyeast/caches/.cache/uv/archive-v0/VIcOQ_j9JoOfTDcJ0PkGp
DEBUG Removing dangling cache archive: /app/data/wyeast/caches/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs
Removed 26 files (52.5MiB)
+ symlinks lib/python3.11/site-packages/zstandard
dangling: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so
dangling: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/__init__.py -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/__init__.py
dangling: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so
dangling: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/backend_cffi.py -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/backend_cffi.py
dangling: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/py.typed -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/py.typed
dangling: /home/remote-user/0.6.4/lib/python3.11/site-packages/zstandard/__init__.pyi -> /home/remote-user/.cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs/zstandard/__init__.pyi
So after installing zstandard then calling uv cache prune the archive dir .cache/uv/archive-v0/3XkaxKI_hOb98TWKNRvUs where that package gets installed gets removed thus leaving dangling symlinks in the package venv.
Compared to the previous version, 0.6.3 where the archive dir remains untouched after a cache prune:
Using CPython 3.11.12 interpreter at: /opt/Python/bin/python3
Creating virtual environment at: 0.6.3
+ uv pip install uv==0.6.3
Using Python 3.11.12 environment at:
Resolved 1 package in 1.46s
Prepared 1 package in 9.16s
Installed 1 package in 3ms
+ uv==0.6.3
+ bin/uv --version
uv 0.6.3
+ bin/uv pip install zstandard
Using Python 3.11.12 environment at:
Resolved 1 package in 982ms
Prepared 1 package in 2.88s
Installed 1 package in 2ms
+ zstandard==0.23.0
+ symlinks lib/python3.11/site-packages/zstandard
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/__init__.py -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/__init__.py
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/backend_cffi.py -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/backend_cffi.py
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/py.typed -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/py.typed
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/__init__.pyi -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/__init__.pyi
+ bin/uv cache -v prune
DEBUG uv 0.6.3
Pruning cache at: /home/remote-user/.cache/uv
DEBUG Removing dangling cache bucket: /home/remote-user/.cache/uv/wheels-v5
Removed 3 files (1.4KiB)
+ symlinks lib/python3.11/site-packages/zstandard
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/backend_c.cpython-311-aarch64-linux-gnu.so
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/__init__.py -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/__init__.py
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/_cffi.cpython-311-aarch64-linux-gnu.so
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/backend_cffi.py -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/backend_cffi.py
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/py.typed -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/py.typed
other_fs: /home/remote-user/0.6.3/lib/python3.11/site-packages/zstandard/__init__.pyi -> /home/remote-user/.cache/uv/archive-v0/c8tiDgnJBm77dsv16VIVJ/zstandard/__init__.pyi
Platform
Debian 12, aarch64 and x86_64
Version
0.6.4+
Python version
3.11.12, 3.12.10, 3.13.3
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
needs-mreNeeds more information for reproduction, see #9452Needs more information for reproduction, see #9452