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

Failed to unzip the Python package on Windows-2022 Core server #819

Open
2 of 5 tasks
imarinov3 opened this issue Feb 19, 2024 · 12 comments
Open
2 of 5 tasks

Failed to unzip the Python package on Windows-2022 Core server #819

imarinov3 opened this issue Feb 19, 2024 · 12 comments
Assignees
Labels
bug Something isn't working

Comments

@imarinov3
Copy link

Description:
A clear and concise description of what the bug is.

Action version:
2.313.0

Platform:

  • Ubuntu
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Tools version:

Repro steps:

 - name: Setup python
        uses: actions/setup-python@v5
        with:
          python-version: '3.6.x - 3.11.x'

Expected behavior:
To install the required Python version

Actual behavior:
Failed to unzip Python package

Run actions/setup-python@v5
with:
python-version: 3.6.x - 3.11.x
check-latest: false
token: ***
update-environment: true
allow-prereleases: false
env:
DEBUG: 1

Installed versions
Version 3.6.x - 3.11.x was not found in the local cache
Version 3.6.x - 3.11.x is available for downloading
Download from "https://github.com/actions/python-versions/releases/download/3.11.8-7809691605/python-3.11.8-win[32](https://github.com/abaltatech/weblink/actions/runs/7950776332/job/21720913455#step:3:34)-x64.zip"
Extract downloaded archive
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner_work_temp\370840e9-4c83-483f-a8af-1541c208a31e' -DestinationPath 'C:\actions-runner_work_temp\e587df2a-0014-4ec2-9433-6002add0f7c7' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\actions-runner_work_temp[37](https://github.com/abaltatech/weblink/actions/runs/7950776332/job/21720913455#step:3:39)08[40](https://github.com/abaltatech/weblink/actions/runs/7950776332/job/21720913455#step:3:42)e9-4c83-483f-a8af-15[41](https://github.com/abaltatech/weblink/actions/runs/7950776332/job/21720913455#step:3:44)c208a31e', 'C:\actions-runner_work_temp\e587df2a-0014-4ec2-9433-6002add0f7c7', $true) }"
Expand-Archive : is not a supported archive file format. .zip is the only supported archive file format.
At line:1 char:210

  • ... Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner_work_tem ...
  •             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidArgument: (:String) [Expand-Archive], IOException
    • FullyQualifiedErrorId : NotSupportedArchiveFileExtension,Expand-Archive

Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1

@imarinov3 imarinov3 added bug Something isn't working needs triage labels Feb 19, 2024
@imarinov3 imarinov3 changed the title Unzipping is not working on Windows-2022 Core server Failed to unzip the Python package on Windows-2022 Core server Feb 19, 2024
@aparnajyothi-y
Copy link

Hello @imarinov3, Thank you for creating this issue and we will get back you once we have some feedback on this :)

@JamesParrott
Copy link

The tag '3.6.x - 3.11.x' does install 3.11 on a ubuntu runner. I can't find any examples showing hyphen ranges can be used together with x-ranges, but it's valid according to the BNF.

https://github.com/npm/node-semver#advanced-range-syntax
https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#using-the-python-version-input

@priyagupta108 priyagupta108 self-assigned this Feb 23, 2024
@SMoraisAnsys
Copy link

I'm facing the same issue on a Windows self-hosted runner (with any python 3.9, 3.10 and 3.11).
The error message is

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner\_work\_temp\968efb97-afa0-4870-9856-654bd5dcc1ae' -DestinationPath 'C:\actions-runner\_work\_temp\843ebfd5-ab48-4451-b81f-a43[31](https://github.com/myorg/myproject/actions/runs/8102206303/job/22144158811#step:3:33)6e491e7' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\actions-runner\_work\_temp\968efb97-afa0-4870-9856-654bd5dcc1ae', 'C:\actions-runner\_work\_temp\843ebfd5-ab48-4451-b81f-a43316e491e7', $true) }"
  Expand-Archive :  is not a supported archive file format. .zip is the only supported archive file format.
  At line:1 char:210
  + ...  Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner\_work\_tem ...
  +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidArgument: (:String) [Expand-Archive], IOException
      + FullyQualifiedErrorId : NotSupportedArchiveFileExtension,Expand-Archive
   
  Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1

But the strange thing is that downgrading to actions/setup-python@v4 solved my issue.
@imarinov3 Downgrading the version could be a good workaround while waiting for an official fix.

SMoraisAnsys added a commit to SMoraisAnsys/setup-python that referenced this issue Feb 29, 2024
Related to actions#819

Changes include:
- Fixing ExtractToDirectory call by removing third attribute.
This function accepts a third argument but it should be of
type 'System.Text.Encoding' not 'System.Boolean'
- Reordering extract utils to first attemps
ExtractToDirectory and then Expand-Archive. For some
reason the download CPython release was not correctly
handled by Expand-Archive. This could be happening if the
zip file was compressed using an unsupported
compression method (e.g. through `zip` with Unix/linux).
@imarinov3
Copy link
Author

I'm facing the same issue on a Windows self-hosted runner (with any python 3.9, 3.10 and 3.11). The error message is

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner\_work\_temp\968efb97-afa0-4870-9856-654bd5dcc1ae' -DestinationPath 'C:\actions-runner\_work\_temp\843ebfd5-ab48-4451-b81f-a43[31](https://github.com/myorg/myproject/actions/runs/8102206303/job/22144158811#step:3:33)6e491e7' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\actions-runner\_work\_temp\968efb97-afa0-4870-9856-654bd5dcc1ae', 'C:\actions-runner\_work\_temp\843ebfd5-ab48-4451-b81f-a43316e491e7', $true) }"
  Expand-Archive :  is not a supported archive file format. .zip is the only supported archive file format.
  At line:1 char:210
  + ...  Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner\_work\_tem ...
  +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidArgument: (:String) [Expand-Archive], IOException
      + FullyQualifiedErrorId : NotSupportedArchiveFileExtension,Expand-Archive
   
  Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1

But the strange thing is that downgrading to actions/setup-python@v4 solved my issue. @imarinov3 Downgrading the version could be a good workaround while waiting for an official fix.

@SMoraisAnsys yes, there is no other option. I am worrying about that version 4 is not working on node20.
Anyway your fix is working , I have tested and hope it will be merged soon.
Thank you!

@priyagupta108
Copy link

Hello @imarinov3 ,
Thanks for your report. Unfortunately, I am not able to reproduce the issue on my end. For further investigation, Could you please share repro link of public repository to reproduce the issue.

@imarinov3
Copy link
Author

Hello @priyagupta108 , did you test on self-hosted runner with windows 2022 ?

@SMoraisAnsys
Copy link

@priyagupta108 From what I've seen through

I'm facing the same issue on a Windows self-hosted runner (with any python 3.9, 3.10 and 3.11). The error message is

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner\_work\_temp\968efb97-afa0-4870-9856-654bd5dcc1ae' -DestinationPath 'C:\actions-runner\_work\_temp\843ebfd5-ab48-4451-b81f-a43[31](https://github.com/myorg/myproject/actions/runs/8102206303/job/22144158811#step:3:33)6e491e7' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\actions-runner\_work\_temp\968efb97-afa0-4870-9856-654bd5dcc1ae', 'C:\actions-runner\_work\_temp\843ebfd5-ab48-4451-b81f-a43316e491e7', $true) }"
  Expand-Archive :  is not a supported archive file format. .zip is the only supported archive file format.
  At line:1 char:210
  + ...  Ignore)) { Expand-Archive -LiteralPath 'C:\actions-runner\_work\_tem ...
  +                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidArgument: (:String) [Expand-Archive], IOException
      + FullyQualifiedErrorId : NotSupportedArchiveFileExtension,Expand-Archive
   
  Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1

But the strange thing is that downgrading to actions/setup-python@v4 solved my issue. @imarinov3 Downgrading the version could be a good workaround while waiting for an official fix.

@SMoraisAnsys yes, there is no other option. I am worrying about that version 4 is not working on node20. Anyway your fix is working , I have tested and hope it will be merged soon. Thank you!

You can make it back to version 5 afterward (unless your self-hosted runner is on a VM that is deployed on the fly). If it is still running, then previous version of installed CPython version are leveraged. Thus you can use actions/setup-python@v4 to extract correctly and install and then switch to actions/setup-python@v5 as python would already be installed.

@priyagupta108 I took the time to reproduce the error in https://github.com/ansys/pyedb/actions/runs/8112180616/job/22172843447. In this case, i tried to use a new python version (never used yet) with our windows self-hosted runner. Please have a look at #827 which should patch this problem. At least it worked on our other repo. If you want, I can push another commit to the CI to switch the use of actions/setup-python to SMoraisAnsys/setup-python@fix/windows_extract_cpython_release to illustrate that it works ?

jeremyd2019 added a commit to msys2-arm/msys2-autobuild that referenced this issue Mar 18, 2024
Due to actions/setup-python#819, it fails to install python on a Windows
11 (or presumably Server 2022) self-hosted runner, when a suitable
version of python was not already installed.

Closes msys2#85

This partially reverts commit d5779cd.
lazka pushed a commit to msys2/msys2-autobuild that referenced this issue Mar 18, 2024
Due to actions/setup-python#819, it fails to install python on a Windows
11 (or presumably Server 2022) self-hosted runner, when a suitable
version of python was not already installed.

Closes #85

This partially reverts commit d5779cd.
SMoraisAnsys added a commit to SMoraisAnsys/setup-python that referenced this issue Mar 30, 2024
Related to actions#819

Changes consist in reordering extract utils to first attemps
ExtractToDirectory and then Expand-Archive. For some
reason the download CPython release was not correctly
handled by Expand-Archive. This could be happening if the
zip file was compressed using an unsupported
compression method (e.g. through `zip` with Unix/linux).
@SMoraisAnsys
Copy link

@priyagupta108 I took the liberty to reproduce the error on a github runner. The associated branch (https://github.com/SMoraisAnsys/setup-python/tree/test/no-pwshpath) consists in removing a part of the code of function extractZipWin(file, dest) in order to ensure that the runner uses the failing part of the code.

PR that can be used to oversee the changes : SMoraisAnsys#1
Failing CI log : https://github.com/SMoraisAnsys/setup-python/actions/runs/8491166206/job/23262896827?pr=1

@SMoraisDev
Copy link

@priyagupta108 Any updates on this issue or the proposed solution (#827) ? Seems like the problem was reproduced using github GPU runners, see ultralytics/ultralytics#9515

@valentinvarbanov
Copy link

valentinvarbanov commented Apr 29, 2024

@actions/setup-actions-team @aparnajyothi-y @priyagupta108 Are there plans to resolve this as there does not seem to be much activity in the past month?

@Burhan-Q
Copy link

Burhan-Q commented May 3, 2024

Ran into this issue with the Windows GPU runners ultralytics/ultralytics#9515 a fix would definitely be appreciated. Thank @SMoraisAnsys for your input and guidance.

FYI, I downloaded the zip file from the link in the workflow https://github.com/actions/python-versions/releases/download/3.11.9-8525206794/python-3.11.9-win32-x64.zip to my Win10 desktop and was able to unzip this with the PowerShell Expand-Archive module and then install python without an issue, so it's not clear to me why this fails for the runner.

@aparnajyothi-y
Copy link

Hello Everyone,
From our analysis, the issue seems to be linked with the @actions/tool-cache dependency. The setup-python action makes use of this toolkit-cache, specifically the extractZipWin function. This function is a part of the actions/toolkit repository , plays a key role in the extractZip method, determining the approach for zip file extraction based on the platform used.

A potential solution to this issue seems to be provided in the following pull request: toolkit PR#1552.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

8 participants