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

Fails on GitHub Actions with ubuntu-24.04 (Cannot utime: Function not implemented) #1957

Closed
bemoody opened this issue Aug 5, 2024 · 3 comments · Fixed by #1961
Closed

Fails on GitHub Actions with ubuntu-24.04 (Cannot utime: Function not implemented) #1957

bemoody opened this issue Aug 5, 2024 · 3 comments · Fixed by #1961

Comments

@bemoody
Copy link

bemoody commented Aug 5, 2024

Using the GitHub action pypa/[email protected] appears to work if the workflow uses the GitHub ubuntu-22.04 runner (currently ubuntu-latest.)
It appears to fail when using the ubuntu-24.04 runner (currently in "beta".)

It appears that the reason for this is that, after having completed the x86_64 build, and while trying to copy the project into the manylinux2014_i686 container, the tar command fails (I guess that this is a tar command running inside the container.)

Specifically, tar gives the error message Cannot utime: Function not implemented.

Here's an excerpt from the GitHub action log:

                                                              ESC[32m✓ ESC[0m0.05s
##[group]Starting container image quay.io/pypa/manylinux2014_i686:2024.07.02-0...

info: This container will host the build for cp312-manylinux_i686, pp39-manylinux_i686...
+ docker run --rm quay.io/pypa/manylinux2014_i686:2024.07.02-0 uname -m
[...]
##[endgroup]
                                                             ESC[32m✓ ESC[0m25.02s
##[group]Copying project into container...

    + mkdir -p /project
tar: ./pyproject.toml: Cannot utime: Function not implemented
tar: ./README.md: Cannot utime: Function not implemented
tar: ./LICENSE: Cannot utime: Function not implemented
tar: ./setup.py: Cannot utime: Function not implemented
[...]
tar: .: Cannot utime: Function not implemented
tar: Exiting with failure status due to previous errors
##[endgroup]
                                                              ESC[31m✕ ESC[0m0.31s
##[error]Command tar cf - . | docker exec -i cibuildwheel-e2d3bec0-afbc-4f21-a6dc-40fe9ebbaafa tar --no-same-owner -xC /project -f - failed with code 2. 

##[error]Process completed with exit code 1.

I don't know why this fails (a bug in Github's configuration? a bug in docker?) - but perhaps this could be worked-around by using tar --touch?

Working example

name: wheels

on:
  pull_request:
    paths:
      - '.github/workflows/wheels.yml'
  push:
    branches:
      - main

jobs:
  wheels:
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-22.04
          - windows-2022
          - macos-13
          - macos-14

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - name: Set source timestamp
        run: |
          echo SOURCE_DATE_EPOCH=$(git log -n1 --pretty=%ct) >> "$GITHUB_ENV"

      - uses: pypa/[email protected]
        env:
          CIBW_BUILD: "cp312-* pp39-*"

      - uses: actions/upload-artifact@v4
        with:
          name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
          path: ./wheelhouse/*.whl

Broken example

on:
  pull_request:
    paths:
      - '.github/workflows/wheels.yml'
  push:
    branches:
      - main

jobs:
  wheels:
    strategy:
      matrix:
        os:
          - ubuntu-24.04
          - windows-2022
          - macos-13
          - macos-14

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true

      - name: Set source timestamp
        run: |
          echo SOURCE_DATE_EPOCH=$(git log -n1 --pretty=%ct) >> "$GITHUB_ENV"

      - uses: pypa/[email protected]
        env:
          CIBW_BUILD: "cp312-* pp39-*"

      - uses: actions/upload-artifact@v4
        with:
          name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
          path: ./wheelhouse/*.whl
adamchainz added a commit to adamchainz/time-machine that referenced this issue Aug 6, 2024
PR #467 broke the build due to this bug:
pypa/cibuildwheel#1957 .

This time I’ll test the workflow *before* merging.
@mayeut
Copy link
Member

mayeut commented Aug 16, 2024

I couldn't reproduce this error: https://github.com/mayeut/cibuildwheel/actions/runs/10407833822/job/28823988398
Maybe that was an issue with the runner ? (it's been updated between the failed run by @adamchainz and my run)

@adamchainz
Copy link
Contributor

I’ve just tried again, and yeah, seems fixed. Perhaps @bemoody can try again too, and maybe close the issue?

@bemoody
Copy link
Author

bemoody commented Aug 19, 2024

I re-ran the workflow that failed and it worked this time. Thanks for looking into it!

@bemoody bemoody closed this as completed Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants