Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 922142 - sys-apps/portage-3.0.61-r1: backtrace when processing global updates with signed binpkgs
Summary: sys-apps/portage-3.0.61-r1: backtrace when processing global updates with sig...
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Binary packages support (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: PullRequest
Depends on: 921380
Blocks:
  Show dependency tree
 
Reported: 2024-01-15 01:41 UTC by Greg Kubaryk
Modified: 2024-02-22 07:24 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Greg Kubaryk 2024-01-15 01:41:43 UTC
When doing eix-sync (emerge --sync), there is still a backtrace when trying to pkgmove signed binpkgs, probably related to bug 919419.

Performing Global Updates
(Could take a couple of minutes if you have a lot of binary packages.)
  .='update pass'  *='binary update'  #='/var/db update'  @='/var/db move'
  s='/var/db SLOT move'  %='binary move'  S='binary SLOT move'
  p='update /etc/portage/package.*'
/var/db/repos/gentoo/profiles/updates/1Q-2024.....................
@Binpkg update ignored for signed package: /var/cache/binpkgs/dev-util/ninja/ninja-1.11.1-r4-2.gpkg.tar@@@!!!
gpg: WARNING: unsafe ownership on homedir '/etc/portage/gnupg'
gpg: no valid OpenPGP data found.
[GNUPG:] NODATA 1
[GNUPG:] NODATA 2
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.11/emerge", line 57, in main
    retval = emerge_main()
             ^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_emerge/main.py", line 1308, in emerge_main
    return run_action(emerge_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_emerge/actions.py", line 3839, in run_action
    return action_sync(emerge_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_emerge/actions.py", line 2422, in action_sync
    success, msgs = syncer.auto_sync(options=options)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/emaint/modules/sync/sync.py", line 89, in auto_sync
    return self._sync(repos, return_messages, emaint_opts=options)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/emaint/modules/sync/sync.py", line 261, in _sync
    self._do_pkg_moves()
  File "/usr/lib/python3.11/site-packages/portage/emaint/modules/sync/sync.py", line 272, in _do_pkg_moves
    if self.emerge_config.opts.get("--package-moves") != "n" and _global_updates(
                                                                 ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/_global_updates.py", line 44, in _global_updates
    return _do_global_updates(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/_global_updates.py", line 189, in _do_global_updates
    moves = bindb.move_ent(update_cmd, repo_match=repo_match)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/dbapi/bintree.py", line 724, in move_ent
    mydata = mybinpkg.get_metadata()
             ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/gpkg.py", line 783, in get_metadata
    return self.unpack_metadata()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/portage/gpkg.py", line 748, in unpack_metadata
    self._verify_binpkg(metadata_only=True)
  File "/usr/lib/python3.11/site-packages/portage/gpkg.py", line 1586, in _verify_binpkg
    checksum_info.finish()
  File "/usr/lib/python3.11/site-packages/portage/gpkg.py", line 594, in finish
    raise InvalidSignature("GPG verify failed")
portage.exception.InvalidSignature: GPG verify failed

-----------------------------

# emerge --info
Portage 3.0.61 (python 3.11.7-final-0, default/linux/amd64/17.1/hardened, gcc-13, glibc-2.38-r9, 5.10.186 x86_64)
=================================================================
System uname: Linux-5.10.186-x86_64-AMD_Phenom-tm-_II_X6_1045T_Processor-with-glibc2.38
KiB Mem:    16143108 total,   3647344 free
KiB Swap:   23246548 total,  23241428 free
Timestamp of repository gentoo: Sun, 14 Jan 2024 08:00:01 +0000
Head commit of repository gentoo: 66befac964c44162818496ee5233c8d2f631107f
Head commit of repository meow: d1aa3cf83fcd7a75c419ebe31527adb14b89aa00

sh bash 5.2_p21-r2
ld GNU ld (Gentoo 2.41 p4) 2.41.0
app-misc/pax-utils:        1.3.7::gentoo
app-shells/bash:           5.2_p21-r2::gentoo
dev-build/make:            4.4.1-r1::gentoo
dev-build/meson:           1.3.1::gentoo
dev-lang/perl:             5.38.2-r1::gentoo
dev-lang/python:           3.11.7::gentoo, 3.12.1_p1::gentoo
dev-lang/rust-bin:         1.74.1::gentoo
dev-util/cmake:            3.28.1-r1::gentoo
sys-apps/baselayout:       2.14-r1::gentoo
sys-apps/openrc:           0.53::gentoo
sys-apps/sandbox:          2.38::gentoo
sys-devel/autoconf:        2.72-r1::gentoo
sys-devel/automake:        1.16.5-r1::gentoo
sys-devel/binutils:        2.41-r4::gentoo
sys-devel/binutils-config: 5.5::gentoo
sys-devel/clang:           17.0.6::gentoo
sys-devel/gcc:             13.2.1_p20231216::gentoo
sys-devel/gcc-config:      2.11::gentoo
sys-devel/libtool:         2.4.7-r2::gentoo
sys-devel/llvm:            17.0.6::gentoo
sys-kernel/linux-headers:  6.6::gentoo (virtual/os-headers)
sys-libs/glibc:            2.38-r9::gentoo
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    priority: -1000
    volatile: False
    sync-rsync-verify-jobs: 3
    sync-rsync-verify-metamanifest: yes
    sync-rsync-extra-opts: 
    sync-rsync-verify-max-age: 3

hex
    location: /var/db/repos/hex
    masters: gentoo
    volatile: True

meow
    location: /var/db/repos/meow
    sync-type: git
    sync-uri: https://github.com/gkubaryk/meow
    masters: gentoo
    volatile: False

Binary Repositories:

purr
    sync-uri: http://192.168.5.55:8079

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe -march=native"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--verbose-slot-rebuilds=n --usepkg-exclude 'sys-kernel/* virtual/* */*-bin x11-base/xorg-drivers sys-firmware/* www-plugins/*' --buildpkg-exclude 'sys-kernel/* virtual/* */*-bin x11-base/xorg-drivers sys-firmware/* www-plugins/*'"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance binpkg-request-signature binpkg-signing buildpkg buildpkg-live config-protect-if-modified distlocks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch parallel-install pid-sandbox pkgdir-index-trusted preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://gentoo.osuosl.org/ http://mirrors.rit.edu/gentoo/ http://mirror.csclub.uwaterloo.ca/gentoo-distfiles/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LEX="flex"
MAKEOPTS="-j6"
PKGDIR="/var/cache/binpkgs"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
SHELL="/bin/bash"
USE="acl amd64 bzip2 cet cli crypt dist-kernel dri fortran gdbm hardened iconv ipv6 libtirpc multilib ncurses nls openmp pam pcre pic pie readline seccomp split-usr ssl ssp test-rust unicode xattr xtpax zlib" ABI_X86="64" ADA_TARGET="gnat_2021" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 ntrip navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-1" POSTGRES_TARGETS="postgres15" PYTHON_SINGLE_TARGET="python3_11" PYTHON_TARGETS="python3_11" RUBY_TARGETS="ruby31" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  ADDR2LINE, AR, ARFLAGS, AS, ASFLAGS, CC, CCLD, CONFIG_SHELL, CPP, CPPFLAGS, CTARGET, CXX, CXXFILT, ELFEDIT, EXTRA_ECONF, F77FLAGS, FC, GCOV, GPROF, INSTALL_MASK, LC_ALL, LD, LFLAGS, LIBTOOL, LINGUAS, MAKE, MAKEFLAGS, NM, OBJCOPY, OBJDUMP, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PYTHONPATH, RANLIB, READELF, RUSTFLAGS, SIZE, STRINGS, STRIP, YACC, YFLAGS
Comment 1 Greg Kubaryk 2024-01-15 01:44:57 UTC
The package in question is validly signed, it seems.

# gpg --homedir /etc/portage/gnupg image.tar.zst.sig 
gpg: WARNING: unsafe permissions on homedir '/etc/portage/gnupg'
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
gpg: assuming signed data in 'image.tar.zst'
gpg: Signature made Fri Jan  5 23:40:33 2024 EST
gpg:                using EDDSA key 420610404B2E91FD9A9F6A6453A6F182DAFE5EE1
gpg: Good signature from "hex gentoo binpkg key <root@purr>" [full]
Comment 2 Zac Medico gentoo-dev 2024-01-15 20:55:19 UTC
It's supposed to ignore the package if there's an existing valid signature, so maybe we can also do the same for InvalidSignature here:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=c00dbfb9d8e3c494173200436ec4c5bc2689707f

There's another one in aux_update from bug 919419:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=a7bbb4fc4d38f770fc943f3b856c5de56e315fe4
Comment 3 Greg Kubaryk 2024-01-16 01:22:52 UTC
tl;dr: patch seems good

Manually applying the patch to /usr/lib/python3.11/site-packages/portage/dbapi/bintree.py allowed global updates to complete; I used /etc/portage/patches/sys-apps/portage-3.0.61-r1/1237.patch to install a "cleanly" patched 3.0.61-r1, and normal operations have resumed.
Comment 4 Larry the Git Cow gentoo-dev 2024-01-16 05:26:33 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=68f4ea8a90d8759a1aa859d9188017e21797bdd0

commit 68f4ea8a90d8759a1aa859d9188017e21797bdd0
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2024-01-16 01:08:36 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2024-01-16 05:25:20 +0000

    Handle SignatureException during package moves
    
    Ignore package moves for packages that raise SignatureException,
    just as they are ignored for packages that have a valid signature.
    
    Bug: https://bugs.gentoo.org/922142
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 lib/portage/dbapi/bintree.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
Comment 5 Larry the Git Cow gentoo-dev 2024-02-22 07:24:06 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=77c44c46194922509bc4f2b5cfc099412a560a69

commit 77c44c46194922509bc4f2b5cfc099412a560a69
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2024-02-22 07:23:40 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2024-02-22 07:23:50 +0000

    sys-apps/portage: add 3.0.62
    
    Closes: https://bugs.gentoo.org/663324
    Closes: https://bugs.gentoo.org/728046
    Closes: https://bugs.gentoo.org/891137
    Closes: https://bugs.gentoo.org/906368
    Closes: https://bugs.gentoo.org/916566
    Closes: https://bugs.gentoo.org/921170
    Closes: https://bugs.gentoo.org/921208
    Closes: https://bugs.gentoo.org/921400
    Closes: https://bugs.gentoo.org/922038
    Closes: https://bugs.gentoo.org/922142
    Closes: https://bugs.gentoo.org/923368
    Closes: https://bugs.gentoo.org/923750
    Closes: https://bugs.gentoo.org/923841
    Closes: https://bugs.gentoo.org/923852
    Closes: https://bugs.gentoo.org/923854
    Closes: https://bugs.gentoo.org/924192
    Closes: https://bugs.gentoo.org/924273
    Closes: https://bugs.gentoo.org/924585
    Closes: https://bugs.gentoo.org/921380
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-apps/portage/Manifest              |   1 +
 sys-apps/portage/portage-3.0.62.ebuild | 246 +++++++++++++++++++++++++++++++++
 2 files changed, 247 insertions(+)