Skip to content

Updating metadata database ... failed #765

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

Closed
jeroen opened this issue Apr 14, 2025 · 5 comments
Closed

Updating metadata database ... failed #765

jeroen opened this issue Apr 14, 2025 · 5 comments

Comments

@jeroen
Copy link
Member

jeroen commented Apr 14, 2025

As of a few days ago, for all builds in r-universe we very often see:

pak::pkg_sysreqs('.', upgrade = FALSE)
#  ✔ Updated metadata database: 8.82 MB in 16 files.
#  ℹ Updating metadata database
#  ✖ Updating metadata database ... failed

update here is a minimal example: https://github.com/jeroen/pak-tests/actions/runs/14442464229/job/40495486494


Perhaps it is the same problem as #764

> pak::pkg_sysreqs('.', upgrade = FALSE)
! Optional package `pillar` is not available for pak.
  Use `pak::pak_install_extra()` to install optional packages.
  Use `options(pak.no_extra_messages = TRUE)` to suppress this message.
✔ Updated metadata database: 6.16 MB in 15 files.
✖ Updating metadata database ... failed
Error:  13  deps for  1/1  pkgs [⠧] Done
! error in pak subprocess
Caused by error in `value$ref %in% private$state$ref && !value$direct`:
! 'length = 12' in coercion to 'logical(1)'
Type .Last.error to see the more details.
@jeroen
Copy link
Member Author

jeroen commented Apr 14, 2025

Updated the example with devel pak, still errors: https://github.com/jeroen/pak-tests/actions/runs/14454615834/job/40534917653

Error now says:

ℹ Updating metadata database
✖ Updating metadata database ... failed

Error: 
! error in pak subprocess
Caused by error in `res_one_row_df(entries)`:
! `nrow(out)` must equal `1`.
---
Backtrace:
1. pak::pkg_sysreqs(".", upgrade = FALSE)
2. pak:::remote(function(...) { …
3. err$throw(res$error)
---
Subprocess backtrace:
 1. base::withCallingHandlers(cli_message = function(msg) { …
 2. get("pkg_sysreqs_internal", asNamespace("pak"))(...)
 3. pkgdepends::sysreqs_install_plan(pkg, upgrade = upgrade, config = config)
 4. prop$solve()
 5. private$plan$solve(policy = private$policy)
 6. pkgdepends:::pkgplan_solve(self, private, match.arg(policy))
 7. self$resolve()
 8. pkgdepends:::pkgplan_resolve(self, private)
 9. pkgdepends:::synchronise(self$async_resolve())
10. asNamespace("pkgcache")$synchronise(...)
11. base::stop(priv$value)
12. global (function (e) …

@gaborcsardi
Copy link
Member

This is happening because https://bioc.r-universe.dev/bin/linux/noble/4.5/src/contrib/PACKAGES has some packages that do not have a Built fileld, and pak assumes that these are binary packages that have one.

I guess it can assume that the packages without a Built field are source packages.

@gaborcsardi
Copy link
Member

This should be fixed now. I started a build for deploying updated nightly builds for Linux.

@jeroen
Copy link
Member Author

jeroen commented Apr 16, 2025

Thanks for looking into this!

I guess it can assume that the packages without a Built field are source packages.

How does P3M list packages that do not have a binary? I can change it accordingly.

@gaborcsardi
Copy link
Member

Afair p3m does not have a built field at all, but it lists the binary packages is a separate file.

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

No branches or pull requests

2 participants