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

Spurious test failures related to Windows permissions on temporary directory #6940

Closed
charliermarsh opened this issue Sep 2, 2024 · 13 comments · Fixed by #8350
Closed

Spurious test failures related to Windows permissions on temporary directory #6940

charliermarsh opened this issue Sep 2, 2024 · 13 comments · Fixed by #8350
Labels
testing Internal testing of behavior

Comments

@charliermarsh
Copy link
Member

running 1 test
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: uv_run_isolate
Source: E:\uv:533
───────────────────────────────────────────────────────────────────────────────
Expression: snapshot
───────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬──────────────────────────────────────────────────────────────────
    0       │-success: true
    1       │-exit_code: 0
          0 │+success: false
          1 │+exit_code: 2
    2     2 │ ----- stdout -----
    3       │-Success
    4     3 │ 
    5     4 │ ----- stderr -----
    6     5 │ Using Python 3.12.[X] interpreter at: [PYTHON-3.12]
    7     6 │ Creating virtualenv at: .venv
    8     7 │ Resolved 8 packages in [TIME]
    9       │-Prepared 7 packages in [TIME]
   10       │-Installed 7 packages in [TIME]
   11       │- + albatross==0.1.0 (from file://[TEMP_DIR]/albatross-root-workspace)
   12       │- + anyio==4.3.0
   13       │- + bird-feeder==1.0.0 (from file://[TEMP_DIR]/albatross-root-workspace/packages/bird-feeder)
   14       │- + idna==3.6
   15       │- + seeds==1.0.0 (from file://[TEMP_DIR]/albatross-root-workspace/packages/seeds)
   16       │- + sniffio==1.3.1
   17       │- + tqdm==4.66.2
          8 │+error: Failed to prepare distributions
          9 │+  Caused by: Failed to fetch wheel: seeds @ file://[TEMP_DIR]/albatross-root-workspace/packages/seeds
         10 │+  Caused by: Build backend failed to build wheel through `build_editable()` with exit code: 1
         11 │+--- stdout:
         12 │+
         13 │+--- stderr:
         14 │+Traceback (most recent call last):
         15 │+  File "<string>", line 11, in <module>
         16 │+  File "[CACHE_DIR]/builds-v0/[TMP]/build.py", line 83, in build_editable
         17 │+    return os.path.basename(next(builder.build(directory=wheel_directory, versions=['editable'])))
         18 │+                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         19 │+  File "[CACHE_DIR]/builds-v0/[TMP]/interface.py", line 90, in build
         20 │+    self.metadata.validate_fields()
         21 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 259, in validate_fields
         22 │+    _ = self.version
         23 │+        ^^^^^^^^^^^^
         24 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 143, in version
         25 │+    self._version = self._get_version()
         26 │+                    ^^^^^^^^^^^^^^^^^^^
         27 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 248, in _get_version
         28 │+    from packaging.version import InvalidVersion, Version
         29 │+  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         30 │+  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         31 │+  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         32 │+  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
         33 │+  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
         34 │+  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
         35 │+PermissionError: [Errno 13] Permission denied: 'E:\/uv-tmp\/[TMP]/version.py'
         36 │+---
────────────┴──────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.
test test_uv_run_isolate ... FAILED
@zanieb
Copy link
Member

zanieb commented Sep 3, 2024

Duplicate of #6789 — better title though.

@zanieb
Copy link
Member

zanieb commented Sep 3, 2024

Maybe since #6680 ?

I wonder if this is a real bug that's just surfaced now?

@charliermarsh
Copy link
Member Author

(Sorry for the dupe, thanks.)

@samypr100
Copy link
Collaborator

samypr100 commented Sep 5, 2024

Shouldn't the temp dir need to be created before tests start to run?

setup-dev-drive.ps1 might need an adjustment to create that directory

...
Write-Output $Volume

$Drive = "$($Volume.DriveLetter):"
$Tmp = "$($Drive)/uv-tmp"

New-Item $Tmp -ItemType Directory
...

@zanieb
Copy link
Member

zanieb commented Sep 5, 2024

Oh is this related to #6929 ?

Why would it work sometimes?

@samypr100
Copy link
Collaborator

samypr100 commented Sep 5, 2024

Thats the first difference from before and after I can think about. In CI, C: drive already had a temp drive ahead of time, where as the dev drive doesn't. Assuming the errors started happening after those PRs. Given env:tmp_dir does not ensure the dir exists, I assumed this being a potential cause.

zanieb added a commit that referenced this issue Sep 23, 2024
A suggested solution to #6940 — unfortunately only time will tell if it
works.
@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

Another example

         13 │+[stderr]
         14 │+Traceback (most recent call last):
         15 │+  File "<string>", line 11, in <module>
         16 │+  File "[CACHE_DIR]/builds-v0/[TMP]/build.py", line 83, in build_editable
         17 │+    return os.path.basename(next(builder.build(directory=wheel_directory, versions=['editable'])))
         18 │+                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         19 │+  File "[CACHE_DIR]/builds-v0/[TMP]/interface.py", line 90, in build
         20 │+    self.metadata.validate_fields()
         21 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 260, in validate_fields
         22 │+    self.core.validate_fields()
         23 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 1352, in validate_fields
         24 │+    getattr(self, attribute)
         25 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 1223, in dependencies
         26 │+    self._dependencies = list(self.dependencies_complex)
         27 │+                              ^^^^^^^^^^^^^^^^^^^^^^^^^
         28 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 1174, in dependencies_complex
         29 │+    from packaging.requirements import InvalidRequirement, Requirement
         30 │+  File "[CACHE_DIR]/builds-v0/[TMP]/requirements.py", line 9, in <module>
         31 │+    from .markers import Marker, _normalize_extra_values
         32 │+  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         33 │+  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         34 │+  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         35 │+  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
         36 │+  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
         37 │+  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
         38 │+PermissionError: [Errno 13] Permission denied: 'E:\/uv-tmp\/[TMP]/markers.py'

@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

Snapshot file: crates\uv\tests\it\snapshots\it__ecosystem__saleor-uv-lock-output.snap
Snapshot: saleor-uv-lock-output
Source: E:\uv:124
───────────────────────────────────────────────────────────────────────────────
Expression: snapshot
───────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬──────────────────────────────────────────────────────────────────
    0       │-success: true
    1       │-exit_code: 0
          0 │+success: false
          1 │+exit_code: 1
    2     2 │ ----- stdout -----
    3     3 │ 
    4     4 │ ----- stderr -----
    5       │-Resolved 170 packages in [TIME]
          5 │+  × Failed to download and build `html2text==2024.2.26`
          6 │+  ╰─▶ Build backend failed to determine metadata through `prepare_metadata_for_build_wheel` (exit code: 1)
          7 │+
          8 │+      [stdout]
          9 │+      running dist_info
         10 │+      creating [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/html2text.egg-info
         11 │+      writing [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/PKG-INFO
         12 │+      writing dependency_links to [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/dependency_links.txt
         13 │+      writing entry points to [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/entry_points.txt
         14 │+      writing top-level names to [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/top_level.txt
         15 │+      writing manifest file '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/SOURCES.txt'
         16 │+      reading manifest file '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/SOURCES.txt'
         17 │+      reading manifest template 'MANIFEST.in'
         18 │+      adding license file 'COPYING'
         19 │+      adding license file 'AUTHORS.rst'
         20 │+      writing manifest file '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/SOURCES.txt'
         21 │+      creating '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/html2text-2024.2.26.dist-info'
         22 │+
         23 │+      [stderr]
         24 │+      error: [Errno 13] Permission denied: 'E:\/uv\/target\/ecosystem-test-caches\/saleor\/builds-v0\/[TMP]/util.py'

@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: uv_run_virtual_workspace_root
Source: E:\uv:430
───────────────────────────────────────────────────────────────────────────────
Expression: snapshot
───────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬──────────────────────────────────────────────────────────────────
    0       │-success: true
    1       │-exit_code: 0
          0 │+success: false
          1 │+exit_code: 2
    2     2 │ ----- stdout -----
    3       │-Success
    4     3 │ 
    5     4 │ ----- stderr -----
    6     5 │ warning: `VIRTUAL_ENV=[VENV]/` does not match the project environment path `.venv` and will be ignored
    7     6 │ Using CPython 3.12.[X] interpreter at: [PYTHON-3.12]
    8     7 │ Creating virtual environment at: .venv
    9     8 │ Resolved 8 packages in [TIME]
   10       │-Prepared 7 packages in [TIME]
   11       │-Installed 7 packages in [TIME]
   12       │- + albatross==0.1.0 (from file://[TEMP_DIR]/albatross-virtual-workspace/packages/albatross)
   13       │- + anyio==4.3.0
   14       │- + bird-feeder==1.0.0 (from file://[TEMP_DIR]/albatross-virtual-workspace/packages/bird-feeder)
   15       │- + idna==3.6
   16       │- + seeds==1.0.0 (from file://[TEMP_DIR]/albatross-virtual-workspace/packages/seeds)
   17       │- + sniffio==1.3.1
   18       │- + tqdm==4.66.2
          9 │+error: Failed to prepare distributions
         10 │+  Caused by: Failed to fetch wheel: bird-feeder @ file://[TEMP_DIR]/albatross-virtual-workspace/packages/bird-feeder
         11 │+  Caused by: Build backend failed to build editable through `build_editable` (exit code: 1)
         12 │+
         13 │+[stderr]
         14 │+Traceback (most recent call last):
         15 │+  File "<string>", line 11, in <module>
         16 │+  File "[CACHE_DIR]/builds-v0/[TMP]/build.py", line 83, in build_editable
         17 │+    return os.path.basename(next(builder.build(directory=wheel_directory, versions=['editable'])))
         18 │+                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         19 │+  File "[CACHE_DIR]/builds-v0/[TMP]/interface.py", line 155, in build
         20 │+    artifact = version_api[version](directory, **build_data)
         21 │+               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         22 │+  File "[CACHE_DIR]/builds-v0/[TMP]/wheel.py", line 434, in build_editable
         23 │+    return self.build_editable_detection(directory, **build_data)
         24 │+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         25 │+  File "[CACHE_DIR]/builds-v0/[TMP]/wheel.py", line 437, in build_editable_detection
         26 │+    from editables import EditableProject
         27 │+  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         28 │+  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         29 │+  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         30 │+  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
         31 │+  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
         32 │+  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
         33 │+PermissionError: [Errno 13] Permission denied: 'E:\/uv-tmp\/[TMP]/__init__.py'

@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: require_hashes_find_links_no_hash-4
Source: E:\uv:4621
───────────────────────────────────────────────────────────────────────────────
Expression: snapshot
───────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬──────────────────────────────────────────────────────────────────
    0       │-success: true
    1       │-exit_code: 0
          0 │+success: false
          1 │+exit_code: 2
    2     2 │ ----- stdout -----
    3     3 │ 
    4     4 │ ----- stderr -----
    5     5 │ Resolved 1 package in [TIME]
    6       │-Prepared 1 package in [TIME]
    7       │-Uninstalled 1 package in [TIME]
    8       │-Installed 1 package in [TIME]
    9       │- ~ example-a-961b4c22==1.0.0
          6 │+error: Failed to prepare distributions
          7 │+  Caused by: Failed to fetch wheel: example-a-961b4c22==1.0.0
          8 │+  Caused by: Failed to install requirements from `build-system.requires`
          9 │+  Caused by: Failed to prepare distributions
         10 │+  Caused by: Failed to fetch wheel: trove-classifiers==2024.3.3
         11 │+  Caused by: Build backend failed to build wheel through `build_wheel` (exit code: 1)
         12 │+
         13 │+[stderr]
         14 │+Traceback (most recent call last):
         15 │+  File "<string>", line 11, in <module>
         16 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/build_meta.py", line 410, in build_wheel
         17 │+    return self._build_with_temp_dir(
         18 │+           ^^^^^^^^^^^^^^^^^^^^^^^^^^
         19 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir
         20 │+    self.run_setup()
         21 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/build_meta.py", line 311, in run_setup
         22 │+    exec(code, locals())
         23 │+  File "<string>", line 12, in <module>
         24 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/__init__.py", line 104, in setup
         25 │+    return distutils.core.setup(**attrs)
         26 │+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         27 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/_distutils/core.py", line 172, in setup
         28 │+    ok = dist.parse_command_line()
         29 │+         ^^^^^^^^^^^^^^^^^^^^^^^^^
         30 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/_distutils/dist.py", line 475, in parse_command_line
         31 │+    args = self._parse_command_opts(parser, args)
         32 │+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         33 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/dist.py", line 869, in _parse_command_opts
         34 │+    nargs = _Distribution._parse_command_opts(self, parser, args)
         35 │+            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         36 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/_distutils/dist.py", line 534, in _parse_command_opts
         37 │+    cmd_class = self.get_command_class(command)
         38 │+                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         39 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/setuptools/dist.py", line 714, in get_command_class
40 │+    self.cmdclass[command] = cmdclass = ep.load()
         41 │+                                        ^^^^^^^^^
         42 │+  File "C:/hostedtoolcache/windows/Python/3.12.7/x64/Lib/importlib/metadata/__init__.py", line 205, in load
         43 │+    module = import_module(match.group('module'))
         44 │+             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         45 │+  File "C:/hostedtoolcache/windows/Python/3.12.7/x64/Lib/importlib/__init__.py", line 90, in import_module
         46 │+    return _bootstrap._gcd_import(name[level:], package, level)
         47 │+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         48 │+  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
         49 │+  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         50 │+  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         51 │+  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         52 │+  File "<frozen importlib._bootstrap_external>", line 995, in exec_module
         53 │+  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
         54 │+  File "E:/uv-tmp\.tmpV76s9s/cache/builds-v0\.tmpZcJQUN/Lib/site-packages/wheel/bdist_wheel.py", line 27, in <module>
         55 │+    from .macosx_libfile import calculate_macosx_platform_tag
         56 │+  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         57 │+  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         58 │+  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         59 │+  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
         60 │+  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
         61 │+  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
         62 │+PermissionError: [Errno 13] Permission denied: 'E:\/uv-tmp\\.tmpV76s9s\/cache\/builds-v0\\.tmpZcJQUN\/Lib\/site-packages\/wheel\/macosx_libfile.py'
────────────┴──────────────────────────────────────────────────────────────────
Stopped on the first failure. Run `cargo insta test` to run all snapshots.
test pip_sync::require_hashes_find_links_no_hash ... FAILED

@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

Some observations

  1. The failures are common, but not limited to the workspace tests.
  2. The failures always occur during distribution builds.
  3. The failures occur with both setuptools and hatchling build backends.
  4. The failures are always in importlib._bootstrap_external.get_data reading a file to resolve an import.
  5. I think the imports are always outside the standard library.
  6. We don't install from source distributions in most of the test suite.
  7. It seems to reproduce when multiple tests are run concurrently, but not one in a loop.

@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot: lock_sources_source_tree-4
Source: E:\uv:8085
───────────────────────────────────────────────────────────────────────────────
Expression: snapshot
───────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬──────────────────────────────────────────────────────────────────
    0       │-success: true
    1       │-exit_code: 0
          0 │+success: false
          1 │+exit_code: 2
    2     2 │ ----- stdout -----
    3     3 │ 
    4     4 │ ----- stderr -----
    5       │-Prepared 3 packages in [TIME]
    6       │-Installed 3 packages in [TIME]
    7       │- + anyio==0.1.0 (from file://[TEMP_DIR]/workspace/anyio)
    8       │- + project==0.1.0 (from file://[TEMP_DIR]/)
    9       │- + workspace==0.1.0 (from file://[TEMP_DIR]/workspace)
          5 │+error: Failed to prepare distributions
          6 │+  Caused by: Failed to fetch wheel: project @ file://[TEMP_DIR]/
          7 │+  Caused by: Build backend failed to build editable through `build_editable()` with exit code: 1
          8 │+--- stdout:
          9 │+
         10 │+--- stderr:
         11 │+Traceback (most recent call last):
         12 │+  File "<string>", line 11, in <module>
         13 │+  File "[CACHE_DIR]/builds-v0/[TMP]/build.py", line 83, in build_editable
         14 │+    return os.path.basename(next(builder.build(directory=wheel_directory, versions=['editable'])))
         15 │+                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         16 │+  File "[CACHE_DIR]/builds-v0/[TMP]/interface.py", line 90, in build
         17 │+    self.metadata.validate_fields()
         18 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 260, in validate_fields
         19 │+    self.core.validate_fields()
         20 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 1352, in validate_fields
         21 │+    getattr(self, attribute)
         22 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 1223, in dependencies
         23 │+    self._dependencies = list(self.dependencies_complex)
         24 │+                              ^^^^^^^^^^^^^^^^^^^^^^^^^
         25 │+  File "[CACHE_DIR]/builds-v0/[TMP]/core.py", line 1174, in dependencies_complex
         26 │+    from packaging.requirements import InvalidRequirement, Requirement
         27 │+  File "[CACHE_DIR]/builds-v0/[TMP]/requirements.py", line 9, in <module>
         28 │+    from .markers import Marker, _normalize_extra_values
         29 │+  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
         30 │+  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
         31 │+  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
         32 │+  File "<frozen importlib._bootstrap_external>", line 991, in exec_module
         33 │+  File "<frozen importlib._bootstrap_external>", line 1128, in get_code
         34 │+  File "<frozen importlib._bootstrap_external>", line 1186, in get_data
         35 │+PermissionError: [Errno 13] Permission denied: 'E:\/uv-tmp\/[TMP]/markers.py'
         36 │+---

@zanieb
Copy link
Member

zanieb commented Oct 18, 2024

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Snapshot file: crates\uv\tests\snapshots\ecosystem__saleor-uv-lock-output.snap
Snapshot: saleor-uv-lock-output
Source: E:\uv:128
───────────────────────────────────────────────────────────────────────────────
Expression: snapshot
───────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬──────────────────────────────────────────────────────────────────
    0       │-success: true
    1       │-exit_code: 0
          0 │+success: false
          1 │+exit_code: 2
    2     2 │ ----- stdout -----
    3     3 │ 
    4     4 │ ----- stderr -----
    5       │-Resolved 170 packages in [TIME]
          5 │+error: Failed to download and build `rx==1.6.3`
          6 │+  Caused by: Build backend failed to determine metadata through `prepare_metadata_for_build_wheel` with exit code: 1
          7 │+--- stdout:
          8 │+running dist_info
          9 │+creating [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/Rx.egg-info
         10 │+writing [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/PKG-INFO
         11 │+writing dependency_links to [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/dependency_links.txt
         12 │+writing top-level names to [WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/top_level.txt
         13 │+writing manifest file '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/SOURCES.txt'
         14 │+reading manifest file '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/SOURCES.txt'
         15 │+adding license file 'LICENSE'
         16 │+writing manifest file '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/SOURCES.txt'
         17 │+creating '[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/Rx-1.6.3.dist-info'
         18 │+--- stderr:
         19 │+[WORKSPACE]/target/ecosystem-test-caches/saleor/builds-v0/[TMP]/dist.py:268: UserWarning: Unknown distribution option: 'test_suite'
         20 │+  warnings.warn(msg)
         21 │+error: [Errno 13] Permission denied: 'E:\/uv\/target\/ecosystem-test-caches\/saleor\/builds-v0\/[TMP]/wheelfile.py'
         22 │+---
────────────┴─────────────────────────────────────────────────────────────────

@zanieb zanieb closed this as completed in ab16bf0 Oct 20, 2024
MtkN1 pushed a commit to MtkN1/uv that referenced this issue Oct 21, 2024
Cherry-picked from astral-sh#8347 

Might fix astral-sh#6940 — I'm not seeing a
failure over there after this change. I think there may be some problem
with concurrent reads of junctioned files on the DevDrive? It's really
hard to say.

We might lose some important test coverage with this change. I'm not
sure what to do about that either.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
testing Internal testing of behavior
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants