actions icon indicating copy to clipboard operation
actions copied to clipboard

setup-r-dependencies@v2 intermittently failing on ubuntu-latest

Open aschmidt-amplify opened this issue 1 year ago • 3 comments
trafficstars

STOP

If you are debugging a failed build or have a question about GitHub Actions in general do NOT open an issue here. Either post on the Actions sections of the GitHub Community or the RStudio Community forums.

Open an issue here only if you have a bug in one of the custom R specific actions themselves.

Describe the bug When running a package check on mac-os latest, windows latest, and ubuntu latest, the setup-r-dependencies@v2 will fail with the message below. This does not always occur, but when it does, it is related to nloptr:

 Error: 
  ! error in pak subprocess
  Caused by error in `verify_extracted_package(filename, pkg_cache)`:
  ! 
  '/tmp/RtmpfVFPCA/file12c92330f168/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.4/nloptr_2.0.3.tar.gz'
  is not a valid binary, it is missing nloptr/Meta/package.rds.
  ---
  Backtrace:
  1. pak::lockfile_install(".github/pkg.lock")
  2. pak:::remote(function(...) { …
  3. err$throw(res$error)
  ---
  Subprocess backtrace:
   1. base::withCallingHandlers(cli_message = function(msg) { …
   2. get("lockfile_install_internal", asNamespace("pak"))(...)
   3. plan$install()
   4. pkgdepends::install_package_plan(plan, lib = private$library, num_workers = nw, …
   5. base::withCallingHandlers({ …
   6. pkgdepends:::handle_events(state, events)
   7. pkgdepends:::handle_event(state, i)
   8. proc$get_result()
   9. processx:::process_get_result(self, private)
  10. private$post_process()
  11. pkgdepends:::install_extracted_binary(filename, lib_cache, pkg_cache, lib, …
  12. pkgdepends:::verify_extracted_package(filename, pkg_cache)
  13. base::throw(pkg_error("{.path {filename}} is not a valid binary, it is missing {…
  14. | base::signalCondition(cond)
  15. global (function (e) …
  Execution halted

To Reproduce You MUST include a link to the full logs of the failed build. Bug reports which do not contain a link, or only contain a screenshot of the failed build will be closed.

Link to logs

My package is on a private github account so I cannot share a link to the code itself. However, this is the R-CMD-check.yaml in my github workflows folder:

on:
  pull_request:
    branches: [main]
    paths:
      - '.github/workflows/test_package.yml'
      - 'tests/testthat/*'
      - 'R/*'

name: R-CMD-check

permissions: read-all

jobs:
  R-CMD-check:
    runs-on: ${{ matrix.config.os }}

    name: ${{ matrix.config.os }} (${{ matrix.config.r }})

    strategy:
      fail-fast: false
      matrix:
        config:
          - {os: macos-latest,   r: 'release'}
          - {os: windows-latest, r: 'release'}
          - {os: ubuntu-latest,   r: 'release'}

    env:
      GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
      R_KEEP_PKG_SOURCE: yes

    steps:
      - uses: actions/checkout@v4

      - uses: r-lib/actions/setup-r@v2
        with:
          r-version: ${{ matrix.config.r }}
          http-user-agent: ${{ matrix.config.http-user-agent }}
          use-public-rspm: true

      - uses: r-lib/actions/setup-r-dependencies@v2
        with:
          extra-packages: any::rcmdcheck
          needs: check

      - uses: r-lib/actions/check-r-package@v2
        with:
          upload-snapshots: true
          build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")'

Expected behavior Non-failure. Here is a log to a successful install with nloptr

Additional context If I edit my workflow to use extra-packages: any::rcmdcheck, nloptr=?ignore, all checks will fail. And when I restore to just extra-packages: any::rcmdcheck, all checks (including ubuntu) will pass

aschmidt-amplify avatar May 31 '24 19:05 aschmidt-amplify

I cannot read the logs at that URL.

gaborcsardi avatar May 31 '24 19:05 gaborcsardi

Sorry about that. Not sure what happened. Here is the meat of the error:

Error: 
  ! error in pak subprocess
  Caused by error in `verify_extracted_package(filename, pkg_cache)`:
  ! 
  '/tmp/RtmptLVX0v/file129d102dad9e/src/contrib/x86_64-pc-linux-gnu-ubuntu-22.04/4.4/nloptr_2.0.3.tar.gz'
  is not a valid binary, it is missing nloptr/Meta/package.rds.
  ---
  Backtrace:
  1. pak::lockfile_install(".github/pkg.lock")
  2. pak:::remote(function(...) { …
  3. err$throw(res$error)
  ---
  Subprocess backtrace:
   1. base::withCallingHandlers(cli_message = function(msg) { …
   2. get("lockfile_install_internal", asNamespace("pak"))(...)
   3. plan$install()
   4. pkgdepends::install_package_plan(plan, lib = private$library, num_workers = nw, …
   5. base::withCallingHandlers({ …
   6. pkgdepends:::handle_events(state, events)
   7. pkgdepends:::handle_event(state, i)
   8. proc$get_result()
   9. processx:::process_get_result(self, private)
  10. private$post_process()
  11. pkgdepends:::install_extracted_binary(filename, lib_cache, pkg_cache, lib, …
  12. pkgdepends:::verify_extracted_package(filename, pkg_cache)
  13. base::throw(pkg_error("{.path {filename}} is not a valid binary, it is missing {…
  14. | base::signalCondition(cond)
  15. global (function (e) …
  Execution halted
  Error: Process completed with exit code 1.

aschmidt-amplify avatar Jun 14 '24 17:06 aschmidt-amplify

Here is a gist with the logs: https://gist.github.com/aschmidt-amplify/7138aa31f0e4c87fc16618f4c07f6b80

aschmidt-amplify avatar Jun 14 '24 17:06 aschmidt-amplify

That's probably a failed download from PPPM, hopefully temporary.

gaborcsardi avatar Jul 31 '24 09:07 gaborcsardi

This issue has been automatically locked. If you believe you have found a related problem, please file a new issue and include a link to this issue

github-actions[bot] avatar Aug 15 '24 01:08 github-actions[bot]