Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uv's tool installation feature breaks on Wine #5090

Open
alexdelorenzo opened this issue Jul 16, 2024 · 8 comments
Open

uv's tool installation feature breaks on Wine #5090

alexdelorenzo opened this issue Jul 16, 2024 · 8 comments
Labels
windows Specific to the Windows platform

Comments

@alexdelorenzo
Copy link

alexdelorenzo commented Jul 16, 2024

Reproduce

Steps 1 - 7 should run successfully, step 8 results in an error:

  1. Using Linux, install Wine from your package manager or compile Wine 9.12
  2. Run winecfg, set Windows version to Windows 10 or 11 if it isn't already set
  3. Run wget "https://www.python.org/ftp/python/3.12.4/python-3.12.4-amd64.exe"
  4. Run wine python-3.12.4-amd64.exe
  5. Follow Python's setup, install it to the system and not just for the user
  6. Run wine python -m ensurepip
  7. Run wine python -m pip install uv
  8. Run wine python -m uv tool install wheel, see output below

Output

$ wine python -m uv tool install wheel
warning: `uv tool install` is experimental and may change without warning.
⠙ Resolving dependencies...
⠙ wheel==0.43.0
Resolved 1 package in 16ms
wheel      ------------------------------ 65.78 kB/65.78 kB
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: wheel==0.43.0
  Caused by: Failed to read from the distribution cache
  Caused by: Request not supported. (os error 50)

Expected output

Run on Windows 11:

$ python -m uv tool install wheel
Resolved 1 package in 6ms
Installed 1 package in 1.95s
 + wheel==0.43.0

Installed scripts:
  - wheel

Notes

  1. Run winecfg, set Windows version to Windows 10 or 11 if it isn't already set
  2. Run wget "https://github.com/astral-sh/rye/releases/latest/download/rye-x86_64-windows.exe"
  3. Run wine rye-x86_64-windows.exe
  4. Follow Rye's setup script using the default options, it will install successfully
  5. Run wine rye install wheel:
⠙ Resolving dependencies...
⠙ wheel==0.43.0
Resolved 1 package in 6ms
wheel      ------------------------------ 64.39 kB/65.78 kB
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: wheel==0.43.0
  Caused by: Failed to read from the distribution cache
  Caused by: Request not supported. (os error 50)
error: Installation of wheel failed in venv at C:\users\user\.rye\tools\wheel. uv exited with status: exit code: 2
@charliermarsh
Copy link
Member

Interesting, but Rye doesn't use the uv tool feature, I don't think?

@alexdelorenzo
Copy link
Author

Interesting, but Rye doesn't use the uv tool feature, I don't think?

I haven't run it in a venv to test, the issue might be with uv's general package installation feature and not just its tool feature.

@zanieb
Copy link
Member

zanieb commented Jul 16, 2024

This doesn't look related to tool installs, just something with our cache?

Are you getting a Windows version of uv? I imagine this is some weird interaction of our Windows-specific file system code on a machine that's actually using a Linux file system? Can you share the output with RUST_LOG=trace and the -v flag.

@alexdelorenzo
Copy link
Author

This doesn't look related to tool installs, just something with our cache?

Are you getting a Windows version of uv? I imagine this is some weird interaction of our Windows-specific file system code on a machine that's actually using a Linux file system? Can you share the output with RUST_LOG=trace and the -v flag.

I downloaded this archive and ran the uv.exe in it with Wine and got the same result.

$ wine ./uv.exe tool install wheel
warning: `uv tool install` is experimental and may change without warning.
⠋ Resolving dependencies...
⠙ wheel==0.43.0
Resolved 1 package in 99ms
wheel      ------------------------------ 65.78 kB/65.78 kB
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: wheel==0.43.0
  Caused by: Failed to read from the distribution cache
  Caused by: Request not supported. (os error 50)

Here's the output when the env var and -v flag are set:

Click for log
DEBUG uv 0.2.25                                                                                                                                                                                                                                
warning: `uv tool install` is experimental and may change without warning.
DEBUG Searching for Python interpreter in managed installations, system path, or `py` launcher
DEBUG Searching for managed installations at `C:\users\user\AppData\Roaming\uv\data\python`
TRACE Searching PATH for executables: python3.exe, python.exe
TRACE Checking `PATH` directory for interpreters: C:\Program Files\Python312\Scripts\
TRACE Checking `PATH` directory for interpreters: C:\Program Files\Python312\
TRACE Found possible Python executable: C:\Program Files\Python312\python.exe
TRACE Cached interpreter info for Python 3.12.4, skipping probing: C:\Program Files\Python312\python.exe
DEBUG Found cpython 3.12.4 at `C:\Program Files\Python312\python.exe` (search path)
DEBUG Using request timeout of 30s
DEBUG Using request timeout of 30s
TRACE Checking lock for `C:\users\user\AppData\Roaming\uv\data\tools`
DEBUG Acquired lock for `C:\users\user\AppData\Roaming\uv\data\tools`
TRACE Cached interpreter info for Python 3.12.4, skipping probing: C:\users\user\AppData\Roaming\uv\data\tools\wheel\Scripts\python.exe
DEBUG Using existing environment for tool `wheel`: C:\users\user\AppData\Roaming\uv\data\tools\wheel
DEBUG At least one requirement is not satisfied: wheel
DEBUG Using request timeout of 30s
DEBUG Solving with installed Python version: 3.12.4
DEBUG Adding direct dependency: wheel*
INFO add_decision: root @ 0a0.dev0
TRACE Fetching metadata for wheel from https://pypi.org/simple/wheel/
TRACE cached request https://pypi.org/simple/wheel/ is storable because its response has a 'public' cache-control directive
DEBUG Found fresh response for: https://pypi.org/simple/wheel/
TRACE Received package metadata for: wheel
DEBUG Searching for a compatible version of wheel (*)
TRACE selecting candidate for package wheel with range Range { segments: [(Unbounded, Unbounded)] } with 75 remote versions
TRACE selecting candidate for package wheel with range Range { segments: [(Unbounded, Unbounded)] } with 75 remote versions
TRACE found candidate for package PackageName("wheel") with range Range { segments: [(Unbounded, Unbounded)] } after 1 steps: "0.43.0" version
TRACE found candidate for package PackageName("wheel") with range Range { segments: [(Unbounded, Unbounded)] } after 1 steps: "0.43.0" version
DEBUG Selecting: wheel==0.43.0 (wheel-0.43.0-py3-none-any.whl)
TRACE cached request https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl.metadata is storable because its response has a 'public' cache-control 
directive
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl.metadata
TRACE Received built distribution metadata for: wheel==0.43.0
INFO add_decision: wheel @ 0.43.0
DEBUG Tried 1 versions: wheel 1
DEBUG Split  took 0.005s
Resolved 1 package in 10ms
DEBUG Identified uncached requirement: wheel==0.43.0
TRACE No cache entry exists for \\?\C:\users\user\AppData\Local\uv\cache\wheels-v1\pypi\wheel\wheel-0.43.0-py3-none-any.http
DEBUG No cache entry for: https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl
TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl
TRACE Handling request for https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl
TRACE Request for https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl is unauthenticated, checking cache
TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl
TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl
TRACE checkout waiting for idle connection: ("https", files.pythonhosted.org)
DEBUG starting new connection: https://files.pythonhosted.org/
TRACE Http::connect; scheme=Some("https"), host=Some("files.pythonhosted.org"), port=None
DEBUG resolving host="files.pythonhosted.org"
DEBUG connecting to [2a04:4e42:8e::223]:443
DEBUG connected to [2a04:4e42:8e::223]:443
TRACE http1 handshake complete, spawning background dispatcher task
TRACE checkout dropped for ("https", files.pythonhosted.org)
TRACE cached request https://files.pythonhosted.org/packages/7d/cd/d7460c9a869b16c3dd4e1e403cce337df165368c71d6af229a74699622ce/wheel-0.43.0-py3-none-any.whl is storable because its response has a 'public' cache-control directive
TRACE put; add idle connection for ("https", files.pythonhosted.org)
DEBUG pooling idle connection for ("https", files.pythonhosted.org)
error: Failed to prepare distributions
Caused by: Failed to fetch wheel: wheel==0.43.0
Caused by: Failed to read from the distribution cache
Caused by: Request not supported. (os error 50)

@zanieb
Copy link
Member

zanieb commented Jul 16, 2024

Thanks for the logs! Unfortunately there are a ton of possible places we can throw a cache read error in this code path.

However, the error code 50 looks associated with taking locks — which is essential for safe operation. See https://docs.oracle.com/en-us/iaas/Content/File/Troubleshooting/applicationfailstoacquirelock.htm

Could you explore those two options?

@charliermarsh
Copy link
Member

I've never tested on Wine, maybe our fs ops are just making bad assumptions :)

@alexdelorenzo
Copy link
Author

Did some digging and this may be a Wine issue at first glance.

When using Rye with uv or pip-tools as backends, and then running wine rye install wheel, Wine emits this message:

$ wine rye install wheel
0134:fixme:heap:GetNumaHighestNodeNumber semi-stub: 00007FFFFE1FF9C0
0134:fixme:file:CopyFileExW LPPROGRESS_ROUTINE is not supported
0134:fixme:file:CopyFileExW LPPROGRESS_ROUTINE is not supported
0134:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFFFFFFFFFA, 00007FFFFE1FFE80
017c:fixme:heap:GetNumaHighestNodeNumber semi-stub: 00007FFFFE1FF9C0
017c:fixme:file:NtLockFile I/O completion on lock not implemented yet
⠋ Resolving dependencies...
⠙ wheel==0.43.0
Resolved 1 package in 104ms
wheel      ------------------------------ 65.78 kB/65.78 kB
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: wheel==0.43.0
  Caused by: Failed to read from the distribution cache
  Caused by: Request not supported. (os error 50)
017c:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFFFFFFFFFA, 00007FFFFE1FFE80
31m1merror: Installation of wheel failed in venv at C:\users\alex\.rye\tools\wheel. uv exited with status: exit code: 2

The line:

fixme:file:NtLockFile I/O completion on lock not implemented yet

Comes from here in Wine.

Sounds like it's related, but I'm not familiar enough with what Rye/uv/etc is doing file system wise to say definitively.

@charliermarsh charliermarsh added the windows Specific to the Windows platform label Jul 18, 2024
@sanzoghenzo
Copy link

I hit the same error trying to run uv on Wine inside Docker.

Here's the dockerfile I used (modtly taken form here):

FROM debian:bookworm AS wine

ENV WINEPREFIX="/wine" \
    WINEDEBUG=-all \
    DISPLAY=:1 \
    DEBIAN_FRONTEND=noninteractive \
    PUID=0 \
    PGID=0

RUN dpkg --add-architecture i386 \
    && apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates

ADD --chmod=644 https://dl.winehq.org/wine-builds/winehq.key /etc/apt/keyrings/winehq-archive.key
ADD https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources /etc/apt/sources.list.d/

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        winehq-devel \
        # wine64 \
        # wine32 \
        xvfb \
        winbind \
        unzip \
    && apt-get autoremove -y ca-certificates \
    && rm -rf /var/lib/apt/lists/*

RUN Xvfb :1 -screen 0 320x240x24 & \
    WINEDLLOVERRIDES="mscoree,mshtml=" wineboot -u
RUN rm /tmp/.X1-lock
RUN winecfg -v win10 && wineserver -w

COPY --chmod=755 entrypoint.sh /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
WORKDIR /app
VOLUME /app

FROM wine AS wine-uv

ARG UV_VERSION=0.4.21
ARG UV_ARCH=x86_64
ADD https://github.com/astral-sh/uv/releases/download/${UV_VERSION}/uv-${UV_ARCH}-pc-windows-msvc.zip /app/
RUN unzip uv-${UV_ARCH}-pc-windows-msvc.zip && rm uv-${UV_ARCH}-pc-windows-msvc.zip

I built and ran it with

docker build -f wine:test .
docker run --rm -ti -e WINEDEBUG= -e RUST_LOG=trace wine:test /bin/bash

I then tried to install wheel

wine ./uv.exe -v tool install wheel

I have quite a few more lines in the log,

Full Log
DEBUG uv 0.4.21
DEBUG Searching for default Python interpreter in managed installations, system path, or `py` launcher
DEBUG Searching for managed installations at `C:\users\root\AppData\Roaming\uv\python`
DEBUG Found managed installation `cpython-3.13.0-windows-x86_64-none`
TRACE Cached interpreter info for Python 3.13.0, skipping probing: C:\users\root\AppData\Roaming\uv\python\cpython-3.13.0-windows-x86_64-none\python.exe
DEBUG Found `cpython-3.13.0-windows-x86_64-none` at `C:\users\root\AppData\Roaming\uv\python\cpython-3.13.0-windows-x86_64-none\python.exe` (managed installations)
TRACE Checking lock for `C:\users\root\AppData\Roaming\uv\tools` at `C:\users\root\AppData\Roaming\uv\tools\.lock`
00a0:fixme:file:NtLockFile I/O completion on lock not implemented yet
DEBUG Acquired lock for `C:\users\root\AppData\Roaming\uv\tools`
DEBUG Using request timeout of 30s
DEBUG Solving with installed Python version: 3.13.0
DEBUG Solving with target Python version: >=3.13.0
DEBUG Adding direct dependency: wheel*
INFO add_decision: root @ 0a0.dev0
TRACE Fetching metadata for wheel from https://pypi.org/simple/wheel/
TRACE cached request https://pypi.org/simple/wheel/ is storable because its response has a 'public' cache-control directive
TRACE freshness lifetime found via cache-control max age setting: 600s
DEBUG Found fresh response for: https://pypi.org/simple/wheel/
TRACE Received package metadata for: wheel
DEBUG Searching for a compatible version of wheel (*)
TRACE Selecting candidate for wheel with range * with 76 remote versions
TRACE Selecting candidate for wheel with range * with 76 remote versions
TRACE found candidate for package PackageName("wheel") with range Range { segments: [(Unbounded, Unbounded)] } after 1 steps: "0.44.0" version
TRACE found candidate for package PackageName("wheel") with range Range { segments: [(Unbounded, Unbounded)] } after 1 steps: "0.44.0" version
TRACE cached request https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl.metadata i
s storable because its response has a 'public' cache-control directive
TRACE freshness lifetime found via cache-control max age setting: 365000000s
DEBUG Found fresh response for: https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl
.metadata
DEBUG Selecting: wheel==0.44.0 [compatible] (wheel-0.44.0-py3-none-any.whl)
TRACE Received built distribution metadata for: wheel==0.44.0
INFO add_decision: wheel @ 0.44.0
DEBUG Tried 1 versions: wheel 1
DEBUG Split specific environment resolution took 0.013s
TRACE Resolution: <matches all marker environments>
TRACE Resolution edge: ROOT -> wheel
TRACE Resolution edge:     0a0.dev0 -> 0.44.0
Resolved 1 package in 19ms
DEBUG Creating environment for tool `wheel`: C:\users\root\AppData\Roaming\uv\tools\wheel
004c:fixme:file:CopyFileExW LPPROGRESS_ROUTINE is not supported
004c:fixme:file:CopyFileExW LPPROGRESS_ROUTINE is not supported
004c:fixme:file:CopyFileExW LPPROGRESS_ROUTINE is not supported
004c:fixme:file:CopyFileExW LPPROGRESS_ROUTINE is not supported
DEBUG Using request timeout of 30s
DEBUG Identified uncached distribution: wheel==0.44.0
TRACE No cache entry exists for C:\users\root\AppData\Local\uv\cache\wheels-v2\pypi\wheel\wheel-0.44.0-py3-none-any.http
DEBUG No cache entry for: https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl
TRACE Sending fresh GET request for https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any
.whl
TRACE Handling request for https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl
TRACE Request for https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl is unauthenti
cated, checking cache
TRACE No credentials in cache for URL https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-a
ny.whl
TRACE Attempting unauthenticated request for https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3
-none-any.whl
TRACE checkout waiting for idle connection: ("https", files.pythonhosted.org)
DEBUG starting new connection: https://files.pythonhosted.org/
TRACE Http::connect; scheme=Some("https"), host=Some("files.pythonhosted.org"), port=None
DEBUG resolving host="files.pythonhosted.org"
DEBUG connecting to 151.101.0.223:443
DEBUG connected to 151.101.0.223:443
TRACE ALPN negotiated h2, updating pool
DEBUG binding client connection
DEBUG client connection bound
DEBUG send frame=Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384, max_header_list_size: 16384 }
TRACE encoding SETTINGS; len=24
TRACE encoding setting; val=EnablePush(0)
TRACE encoding setting; val=InitialWindowSize(2097152)
TRACE encoding setting; val=MaxFrameSize(16384)
TRACE encoding setting; val=MaxHeaderListSize(16384)
TRACE encoded settings rem=33
TRACE inc_window; sz=65535; old=0; new=65535
TRACE inc_window; sz=65535; old=0; new=65535
TRACE Prioritize::new; flow=FlowControl { window_size: Window(65535), available: Window(65535) }
TRACE set_target_connection_window; target=5242880; available=65535, reserved=0
TRACE http2 handshake complete, spawning background dispatcher task
TRACE put; add idle connection for ("https", files.pythonhosted.org)
DEBUG pooling idle connection for ("https", files.pythonhosted.org)
TRACE checkout dropped for ("https", files.pythonhosted.org)
TRACE connection.state=Open
TRACE poll
DEBUG send frame=WindowUpdate { stream_id: StreamId(0), size_increment: 5177345 }
TRACE encoding WINDOW_UPDATE; id=StreamId(0)
TRACE encoded window_update rem=46
TRACE inc_window; sz=5177345; old=65535; new=5242880
TRACE poll_complete
TRACE schedule_pending_open
TRACE queued_data_frame=false
TRACE flushing buffer
TRACE inc_window; sz=65535; old=0; new=65535
TRACE inc_window; sz=65535; old=0; new=65535
TRACE send_headers; frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }; init_window=65535
TRACE Queue::push_back
TRACE  -> first entry
TRACE drop_stream_ref; stream=Stream { id: StreamId(1), state: State { inner: HalfClosedLocal(AwaitingHeaders) }, is_counted: false, ref_count: 2, next_pending_send: No
ne, is_pending_send: false, send_flow: FlowControl { window_size: Window(65535), available: Window(0) }, requested_send_capacity: 0, buffered_send_data: 0, send_task: None, pendi
ng_send: Deque { indices: Some(Indices { head: 0, tail: 0 }) }, next_pending_send_capacity: None, is_pending_send_capacity: false, send_capacity_inc: false, next_open: None, is_p
ending_open: true, is_pending_push: false, next_pending_accept: None, is_pending_accept: false, recv_flow: FlowControl { window_size: Window(65535), available: Window(65535) }, i
n_flight_recv_data: 0, next_window_update: None, is_pending_window_update: false, reset_at: None, next_reset_expire: None, pending_recv: Deque { indices: None }, is_recv: true, r
ecv_task: None, push_task: None, pending_push_promises: Queue { indices: None, _p: PhantomData<h2::proto::streams::stream::NextAccept> }, content_length: Omitted }
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(AwaitingHeaders) }; is_closed=false; pending_send_empty=false; buffered_send_data=0; nu
m_recv=0; num_send=0
TRACE connection.state=Open
TRACE poll
TRACE poll_complete
TRACE schedule_pending_open
TRACE schedule_pending_open; stream=StreamId(1)
TRACE Queue::push_front
TRACE  -> first entry
TRACE requested=0 additional=0 buffered=0 window=65535 conn=65535
TRACE is_pending_reset=false
TRACE pop_frame; frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(AwaitingHeaders) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num
_recv=0; num_send=1
TRACE writing frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
DEBUG send frame=Headers { stream_id: StreamId(1), flags: (0x5: END_HEADERS | END_STREAM) }
TRACE schedule_pending_open
TRACE queued_data_frame=false
TRACE flushing buffer
TRACE connection.state=Open
TRACE poll
TRACE read.bytes=21
TRACE decoding frame from 21B
TRACE frame.kind=Settings
DEBUG received frame=Settings { flags: (0x0), max_concurrent_streams: 100 }
TRACE recv SETTINGS frame=Settings { flags: (0x0), max_concurrent_streams: 100 }
DEBUG send frame=Settings { flags: (0x1: ACK) }
TRACE encoding SETTINGS; len=0
TRACE encoded settings rem=9
TRACE ACK sent; applying settings
TRACE poll
TRACE read.bytes=13
TRACE decoding frame from 13B
TRACE frame.kind=WindowUpdate
DEBUG received frame=WindowUpdate { stream_id: StreamId(0), size_increment: 16711681 }
TRACE recv WINDOW_UPDATE frame=WindowUpdate { stream_id: StreamId(0), size_increment: 16711681 }
TRACE inc_window; sz=16711681; old=65535; new=16777216
TRACE poll
TRACE read.bytes=9
TRACE decoding frame from 9B
TRACE frame.kind=Settings
DEBUG received frame=Settings { flags: (0x1: ACK) }
TRACE recv SETTINGS frame=Settings { flags: (0x1: ACK) }
DEBUG received settings ACK; applying Settings { flags: (0x0), enable_push: 0, initial_window_size: 2097152, max_frame_size: 16384, max_header_list_size: 16384 }
TRACE update_initial_window_size; new=2097152; old=65535
TRACE incrementing all windows; inc=2031617
TRACE inc_window; sz=2031617; old=65535; new=2097152
TRACE poll
TRACE read.bytes=730
TRACE decoding frame from 730B
TRACE frame.kind=Headers
TRACE loading headers; flags=(0x4: END_HEADERS)
TRACE decode
TRACE rem=721 kind=Indexed
TRACE rem=720 kind=LiteralWithIndexing
TRACE rem=646 kind=LiteralWithIndexing
TRACE rem=617 kind=LiteralWithIndexing
TRACE rem=593 kind=LiteralWithIndexing
TRACE rem=566 kind=LiteralWithIndexing
TRACE rem=538 kind=LiteralWithIndexing
TRACE rem=498 kind=LiteralWithIndexing
TRACE rem=483 kind=LiteralWithIndexing
TRACE rem=475 kind=LiteralWithIndexing
TRACE rem=460 kind=LiteralWithIndexing
TRACE rem=432 kind=LiteralWithIndexing
TRACE rem=426 kind=LiteralWithIndexing
TRACE rem=402 kind=LiteralWithIndexing
TRACE rem=395 kind=LiteralWithIndexing
TRACE rem=350 kind=LiteralWithIndexing
TRACE rem=335 kind=LiteralWithIndexing
TRACE rem=316 kind=LiteralWithIndexing
TRACE rem=288 kind=LiteralWithIndexing
TRACE rem=254 kind=LiteralWithIndexing
TRACE rem=237 kind=LiteralWithIndexing
TRACE rem=212 kind=LiteralWithIndexing
TRACE rem=188 kind=LiteralWithIndexing
TRACE rem=169 kind=LiteralWithIndexing
TRACE rem=135 kind=LiteralWithIndexing
TRACE rem=108 kind=LiteralWithIndexing
TRACE rem=105 kind=LiteralWithIndexing
TRACE rem=80 kind=LiteralWithIndexing
TRACE rem=58 kind=LiteralWithIndexing
TRACE rem=29 kind=LiteralWithIndexing
TRACE rem=8 kind=LiteralWithoutIndexing
DEBUG received frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
TRACE recv HEADERS frame=Headers { stream_id: StreamId(1), flags: (0x4: END_HEADERS) }
TRACE recv_headers; stream=StreamId(1); state=State { inner: HalfClosedLocal(AwaitingHeaders) }
TRACE opening stream; init_window=2097152
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(Streaming) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num_recv=
0; num_send=1
TRACE poll
TRACE read.bytes=16393
TRACE decoding frame from 16393B
TRACE frame.kind=Data
DEBUG received frame=Data { stream_id: StreamId(1) }
TRACE recv DATA frame=Data { stream_id: StreamId(1) }
TRACE recv_data; size=16384; connection=5242880; stream=2097152
TRACE send_data; sz=16384; window=5242880; available=5242880
TRACE send_data; sz=16384; window=2097152; available=2097152
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(Streaming) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num_recv=
0; num_send=1
TRACE poll
TRACE read.bytes=16393
TRACE decoding frame from 16393B
TRACE frame.kind=Data
DEBUG received frame=Data { stream_id: StreamId(1) }
TRACE recv DATA frame=Data { stream_id: StreamId(1) }
TRACE recv_data; size=16384; connection=5226496; stream=2080768
TRACE send_data; sz=16384; window=5226496; available=5226496
TRACE send_data; sz=16384; window=2080768; available=2080768
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(Streaming) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num_recv=
0; num_send=1
TRACE poll
TRACE read.bytes=16393
TRACE decoding frame from 16393B
TRACE frame.kind=Data
DEBUG received frame=Data { stream_id: StreamId(1) }
TRACE recv DATA frame=Data { stream_id: StreamId(1) }
TRACE recv_data; size=16384; connection=5210112; stream=2064384
TRACE send_data; sz=16384; window=5210112; available=5210112
TRACE send_data; sz=16384; window=2064384; available=2064384
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(Streaming) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num_recv=
0; num_send=1
TRACE poll
TRACE read.bytes=16393
TRACE decoding frame from 16393B
TRACE frame.kind=Data
DEBUG received frame=Data { stream_id: StreamId(1) }
TRACE recv DATA frame=Data { stream_id: StreamId(1) }
TRACE recv_data; size=16384; connection=5193728; stream=2048000
TRACE send_data; sz=16384; window=5193728; available=5193728
TRACE send_data; sz=16384; window=2048000; available=2048000
TRACE transition_after; stream=StreamId(1); state=State { inner: HalfClosedLocal(Streaming) }; is_closed=false; pending_send_empty=true; buffered_send_data=0; num_recv=
0; num_send=1
TRACE poll
TRACE read.bytes=1532
TRACE decoding frame from 1532B
TRACE frame.kind=Data
DEBUG received frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
TRACE recv DATA frame=Data { stream_id: StreamId(1), flags: (0x1: END_STREAM) }
TRACE recv_data; size=1523; connection=5177344; stream=2031616
TRACE send_data; sz=1523; window=5177344; available=5177344
TRACE recv_close: HalfClosedLocal => Closed
TRACE send_data; sz=1523; window=2031616; available=2031616
TRACE transition_after; stream=StreamId(1); state=State { inner: Closed(EndStream) }; is_closed=true; pending_send_empty=true; buffered_send_data=0; num_recv=0; num_sen
d=1
TRACE dec_num_streams; stream=StreamId(1)
TRACE poll
TRACE poll_complete
TRACE schedule_pending_open
TRACE queued_data_frame=false
TRACE flushing buffer
TRACE idle interval checking for expired
TRACE drop_stream_ref; stream=Stream { id: StreamId(1), state: State { inner: Closed(EndStream) }, is_counted: false, ref_count: 2, next_pending_send: None, is_pending_
send: false, send_flow: FlowControl { window_size: Window(65535), available: Window(0) }, requested_send_capacity: 0, buffered_send_data: 0, send_task: None, pending_send: Deque 
{ indices: None }, next_pending_send_capacity: None, is_pending_send_capacity: false, send_capacity_inc: false, next_open: None, is_pending_open: false, is_pending_push: false, n
ext_pending_accept: None, is_pending_accept: false, recv_flow: FlowControl { window_size: Window(2030093), available: Window(2030093) }, in_flight_recv_data: 67059, next_window_u
pdate: None, is_pending_window_update: false, reset_at: None, next_reset_expire: None, pending_recv: Deque { indices: Some(Indices { head: 1, tail: 5 }) }, is_recv: true, recv_ta
sk: None, push_task: None, pending_push_promises: Queue { indices: None, _p: PhantomData<h2::proto::streams::stream::NextAccept> }, content_length: Remaining(0) }
TRACE transition_after; stream=StreamId(1); state=State { inner: Closed(EndStream) }; is_closed=true; pending_send_empty=true; buffered_send_data=0; num_recv=0; num_sen
d=0
TRACE cached request https://files.pythonhosted.org/packages/1b/d1/9babe2ccaecff775992753d8686970b1e2755d21c8a63be73aba7a4e7d77/wheel-0.44.0-py3-none-any.whl is storabl
e because its response has a 'public' cache-control directive
TRACE release_capacity; size=16384
TRACE release_connection_capacity; size=16384, connection in_flight_data=67059
TRACE release_capacity; size=16384
TRACE release_connection_capacity; size=16384, connection in_flight_data=50675
TRACE release_capacity; size=16384
TRACE release_connection_capacity; size=16384, connection in_flight_data=34291
TRACE release_capacity; size=16384
TRACE release_connection_capacity; size=16384, connection in_flight_data=17907
TRACE drop_stream_ref; stream=Stream { id: StreamId(1), state: State { inner: Closed(EndStream) }, is_counted: false, ref_count: 1, next_pending_send: None, is_pending_
send: false, send_flow: FlowControl { window_size: Window(65535), available: Window(0) }, requested_send_capacity: 0, buffered_send_data: 0, send_task: None, pending_send: Deque 
{ indices: None }, next_pending_send_capacity: None, is_pending_send_capacity: false, send_capacity_inc: false, next_open: None, is_pending_open: false, is_pending_push: false, n
ext_pending_accept: None, is_pending_accept: false, recv_flow: FlowControl { window_size: Window(2030093), available: Window(2095629) }, in_flight_recv_data: 1523, next_window_up
date: None, is_pending_window_update: false, reset_at: None, next_reset_expire: None, pending_recv: Deque { indices: None }, is_recv: false, recv_task: None, push_task: None, pen
ding_push_promises: Queue { indices: None, _p: PhantomData<h2::proto::streams::stream::NextAccept> }, content_length: Remaining(0) }
TRACE auto-release closed stream (StreamId(1)) capacity: 1523
TRACE release_connection_capacity; size=1523, connection in_flight_data=1523
TRACE transition_after; stream=StreamId(1); state=State { inner: Closed(EndStream) }; is_closed=true; pending_send_empty=true; buffered_send_data=0; num_recv=0; num_sen
d=0
DEBUG Failed to sync environment; removing `wheel`
DEBUG Deleting environment for tool `wheel` at C:\users\root\AppData\Roaming\uv\tools\wheel
DEBUG Released lock at `C:\users\root\AppData\Roaming\uv\tools\.lock`
TRACE Streams::recv_eof
error: Failed to prepare distributions
  Caused by: Failed to fetch wheel: wheel==0.44.0
  Caused by: Failed to read from the distribution cache
  Caused by: Request not supported. (os error 50)
004c:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFFFFFFFFFA, 00007FFFFE1FFE80

FYI, python is installed successfully on the first run, but I left out the logs for brevity.

I tried to add the registry key mentioned in the article, but nothing changed

wine reg add 'HKLM\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Users\Default\Defaults' /v Locking /t REG_DWORD /d 1

I also tried to install some other packages that has dependencies (pre-commit to be specific), and it fails as soon as the first package (cfgv) is downloaded.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
windows Specific to the Windows platform
Projects
None yet
Development

No branches or pull requests

4 participants