Summary: | sys-apps/portage-2.3.51:porttree.py:1173: TypeError: zip argument #2 must support iteration | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Reinis Danne <rei4dan> |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | normal | Keywords: | InVCS, REGRESSION |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 666956 |
Description
Reinis Danne
2018-11-18 20:39:46 UTC
First of all, I can't reproduce your issue. For me, line 1173 in async_xmatch raises KeyError as expected, so it never reaches the zip call. So this is how it behaves for me: > These are the packages that would be merged, in order: > > * ERROR: x11-misc/virtualgl-9999-r1::local failed (depend phase): > * EAPI=5 is not supported > * > * Call stack: > * ebuild.sh, line 635: Called source '/usr/local/portage/x11-misc/virtualgl/virtualgl-9999-r1.ebuild' > * virtualgl-9999-r1.ebuild, line 6: Called inherit 'cmake-multilib' 'multilib' 'systemd' 'git-r3' > * ebuild.sh, line 326: Called __qa_source '/usr/portage/eclass/cmake-multilib.eclass' > * ebuild.sh, line 111: Called source '/usr/portage/eclass/cmake-multilib.eclass' > * cmake-multilib.eclass, line 24: Called die > * The specific snippet of code: > * *) die "EAPI=${EAPI} is not supported" ;; > * > * If you need support, post the output of `emerge --info '=x11-misc/virtualgl-9999-r1::bumblebee'`, > * the complete build log and the output of `emerge -pqv '=x11-misc/virtualgl-9999-r1::bumblebee'`. > * Working directory: '/usr/lib64/python3.6/site-packages' > * S: '/var/tmp/portage/x11-misc/virtualgl-9999-r1/work/virtualgl-9999' > > !!! All ebuilds that could satisfy "=x11-misc/virtualgl-9999-r1" have been masked. > !!! One of the following masked packages is required to complete your request: > - x11-misc/virtualgl-9999-r1::bumblebee (masked by: corruption) > > For more information, see the MASKED PACKAGES section in the emerge > man page or refer to the Gentoo Handbook. Some information that you've posted in comment #0 appears to be contradictory: Your sed -e 's/EAPI=5/EAPI=6/' call should have changed it to EAPI=6, but the "EAPI=5 is not supported" error shows that the ebuild really does not set EAPI=6. Your dependency calculation appears to have used stale metadata, because metadata could not have been generated with the current version of cmake-multilib.eclass and EAPI=5. So, we need to look at your metadata cache in /usr/local/portage/metadata. I suspect that you have the legacy /usr/local/portage/metadata/cache directory which does not have eclass digests, which would explain why stale metadata was used in your dependency calculation. You should remove the /usr/local/portage/metadata/cache directory, and then portage will default to the md5-dict format. You can explicitly set cache-formats = md5-dict in metadata/layout.conf in order to ensure that portage uses the correct format. Also, let us know if you have anything in /etc/portage/modules, since that can be used to configure a customized metadata cache module which could cause problems. I did not have a metadata/cache directory, only metadata/md5-cache. After moving it away, setting explicit cache format and regenerating the cache it still fails. Note that I specify to emerge virtualgl::local but it fails when sourcing virtualgl::bumblebee. Why does it even touch that ebuild after asking for confirmation about virtualgl::local (which I assume happens after dependency calculation)? ⮕ # egencache --update --repo local ✔ 2018-11-19 14:16:17 rd-oc virtualgl ⮕ # ls -lrth /usr/local/portage/metadata/ total 8,0K -rw-r--r-- 1 root root 43 nov 19 14:13 layout.conf drwxr-xr-x 27 root root 4,0K nov 19 14:16 md5-cache ✔ 2018-11-19 14:16:22 rd-oc virtualgl ⮕ # emerge -1 --quiet-build n x11-misc/virtualgl::local These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U *] x11-misc/virtualgl-9999-r1::local [2.5.2::gentoo] USE="ssl -libressl" ABI_X86="32 (64) (-x32)" 0 KiB Total: 1 package (1 upgrade), Size of downloads: 0 KiB Would you like to merge these packages? [Yes/No] * ERROR: x11-misc/virtualgl-9999-r1::bumblebee failed (depend phase): * EAPI=5 is not supported * * Call stack: * ebuild.sh, line 635: Called source '/var/lib/layman/bumblebee/x11-misc/virtualgl/virtualgl-9999-r1.ebuild' * virtualgl-9999-r1.ebuild, line 6: Called inherit 'cmake-multilib' 'multilib' 'systemd' 'git-r3' * ebuild.sh, line 326: Called __qa_source '/usr/portage/eclass/cmake-multilib.eclass' * ebuild.sh, line 111: Called source '/usr/portage/eclass/cmake-multilib.eclass' * cmake-multilib.eclass, line 24: Called die * The specific snippet of code: * *) die "EAPI=${EAPI} is not supported" ;; * * If you need support, post the output of `emerge --info '=x11-misc/virtualgl-9999-r1::bumblebee'`, * the complete build log and the output of `emerge -pqv '=x11-misc/virtualgl-9999-r1::bumblebee'`. * Working directory: '/usr/lib64/python3.6/site-packages' * S: '/var/tmp/portage/x11-misc/virtualgl-9999-r1/work/virtualgl-9999' Traceback (most recent call last): File "/usr/lib/python-exec/python3.6/emerge", line 53, in <module> retval = emerge_main() File "/usr/lib64/python3.6/site-packages/_emerge/main.py", line 1289, in emerge_main return run_action(emerge_config) File "/usr/lib64/python3.6/site-packages/_emerge/actions.py", line 3325, in run_action retval = action_build(emerge_config, spinner=spinner) File "/usr/lib64/python3.6/site-packages/_emerge/actions.py", line 536, in action_build graph_config=mydepgraph.schedulerGraph()) File "/usr/lib64/python3.6/site-packages/_emerge/Scheduler.py", line 250, in __init__ self._init_graph(graph_config) File "/usr/lib64/python3.6/site-packages/_emerge/Scheduler.py", line 355, in _init_graph self._set_graph_config(graph_config) File "/usr/lib64/python3.6/site-packages/_emerge/Scheduler.py", line 470, in _set_graph_config pkg.root_config, before_install=True) File "/usr/lib64/python3.6/site-packages/_emerge/create_world_atom.py", line 43, in create_world_atom for cpv in portdb.match(Atom(cp)): File "/usr/lib64/python3.6/site-packages/portage/dbapi/porttree.py", line 1220, in match return self.xmatch("match-visible", mydep) File "/usr/lib64/python3.6/site-packages/portage/dbapi/porttree.py", line 1088, in xmatch self.async_xmatch(level, origdep, loop=loop)) File "/usr/lib64/python3.6/site-packages/portage/util/_eventloop/asyncio_event_loop.py", line 135, in _run_until_complete return self._loop.run_until_complete(future) File "/usr/lib64/python3.6/asyncio/base_events.py", line 468, in run_until_complete return future.result() File "/usr/lib64/python3.6/site-packages/portage/util/futures/compat_coroutine.py", line 115, in _next future = next(self._generator) File "/usr/lib64/python3.6/site-packages/portage/dbapi/porttree.py", line 1173, in async_xmatch aux_keys, myrepo=cpv.repo, loop=loop)))) TypeError: zip argument #2 must support iteration ✘ 2018-11-19 14:17:00 rd-oc virtualgl ⮕ # ls -lrth /etc/portage/modules ls: cannot access '/etc/portage/modules': No such file or directory ✘ 2018-11-19 14:24:49 rd-oc virtualgl ⮕ # cat /usr/local/portage/metadata/layout.conf masters = gentoo cache-formats = md5-dict ✔ 2018-11-19 14:25:23 rd-oc virtualgl ⮕ # head -5 virtualgl-9999-r1.ebuild # Copyright 1999-2018 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 ✔ 2018-11-19 14:32:02 rd-oc virtualgl Updated portage still fails the same way: [I] sys-apps/portage Available versions: 2.3.8 2.3.40-r1 2.3.49 2.3.51 (~)2.3.52 **9999 {build doc epydoc gentoo-dev +ipc +native-extensions +rsync-verify selinux xattr PYTHON_TARGETS="pypy python2_7 python3_4 python3_5 python3_6 python3_7"} Installed versions: 2.3.52(15:05:07 2018.11.19.)(ipc native-extensions rsync-verify xattr -build -doc -epydoc -gentoo-dev -selinux PYTHON_TARGETS="python2_7 python3_5 python3_6 -pypy -python3_4 -python3_7") Homepage: https://wiki.gentoo.org/wiki/Project:Portage Description: Portage is the package management and distribution system for Gentoo I don't know if it is relevant, but I'm using eix-sync and at the moment it fails to regen some of the caches because of the bumblebee ovelay (it stops at the first failure). ⮕ # cat /etc/eix-sync.conf -H @/usr/bin/egencache --jobs=8 --repo=bumblebee --update @/usr/bin/egencache --jobs=8 --repo=haskell --update @/usr/bin/egencache --jobs=8 --repo=local --update @/usr/bin/egencache --jobs=8 --repo=science --update @/usr/bin/egencache --jobs=8 --repo=x11 --update ✔ 2018-11-19 15:04:43 rd-oc virtualgl ⮕ # eix-sync ... * Running @-hooks * ERROR: x11-misc/virtualgl-9999-r1::bumblebee failed (depend phase): * EAPI=5 is not supported * * Call stack: * ebuild.sh, line 635: Called source '/var/lib/layman/bumblebee/x11-misc/virtualgl/virtualgl-9999-r1.ebuild' * virtualgl-9999-r1.ebuild, line 6: Called inherit 'cmake-multilib' 'multilib' 'systemd' 'git-r3' * ebuild.sh, line 326: Called __qa_source '/usr/portage/eclass/cmake-multilib.eclass' * ebuild.sh, line 111: Called source '/usr/portage/eclass/cmake-multilib.eclass' * cmake-multilib.eclass, line 24: Called die * The specific snippet of code: * *) die "EAPI=${EAPI} is not supported" ;; * * If you need support, post the output of `emerge --info '=x11-misc/virtualgl-9999-r1::bumblebee'`, * the complete build log and the output of `emerge -pqv '=x11-misc/virtualgl-9999-r1::bumblebee'`. * Working directory: '/usr/lib64/python3.6/site-packages' * S: '/var/tmp/portage/x11-misc/virtualgl-9999-r1/work/virtualgl-9999' Error processing x11-misc/virtualgl-9999-r1, continuing... * Something went wrong with /usr/bin/egencache --jobs=8 --repo=bumblebee --update * Copying old database to /var/cache/eix/previous.eix * Running eix-update Reading Portage settings... Building database (/var/cache/eix/portage.eix)... [0] "gentoo" /usr/portage/ (cache: metadata-md5-or-flat) Reading category 167|167 (100) Finished [1] "mausys" /usr/local/mausys/portage (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [2] "atom" /var/lib/layman/atom (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [3] "bumblebee" /var/lib/layman/bumblebee (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [4] "haskell" /var/lib/layman/haskell (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [5] "mva" /var/lib/layman/mva (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [6] "science" /var/lib/layman/science (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [7] "steam-overlay" /var/lib/layman/steam-overlay (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [8] "x11" /var/lib/layman/x11 (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished [9] "local" /usr/local/portage (cache: parse|ebuild*#metadata-md5#metadata-flat#assign) Reading category 167|167 (100) Finished Applying masks... Calculating hash tables... Writing database file /var/cache/eix/portage.eix... Database contains 22185 packages in 167 categories * Calling eix-diff ... * Time statistics: 845 seconds for syncing 9 seconds for eix-update 2 seconds for eix-diff 863 seconds total ✔ 2018-11-19 15:01:46 rd-oc virtualgl ⮕ # The bug has been referenced in the following commit(s): https://gitweb.gentoo.org/proj/portage.git/commit/?id=74d2509c99fbcb43e018ead4950b938e41e524e5 commit 74d2509c99fbcb43e018ead4950b938e41e524e5 Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2018-11-20 10:06:57 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2018-11-20 10:24:12 +0000 compat_corouting._GeneratorTask: save throw return (bug 671472) According to PEP 342, the generator.throw() method returns a value if the exception is caught. The return value must be sent to the generator in order fufill the generator protocol. This is relevant in the portdbapi.async_xmatch() method, since it catches an exception thrown with the generator.throw() method. Bug: https://bugs.gentoo.org/671472 Signed-off-by: Zac Medico <zmedico@gentoo.org> lib/portage/util/futures/compat_coroutine.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) I was able to reproduce the problem, and https://gitweb.gentoo.org/proj/portage.git/commit/?id=74d2509c99fbcb43e018ead4950b938e41e524e5 fixed it. Thank you! With the patch applied it works as expected. We can consider this as a regression, triggered by the compat_coroutine usage introduced for bug 666940. The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ec4b54c4b0406d7f259dae34876da0b77d19fe3a commit ec4b54c4b0406d7f259dae34876da0b77d19fe3a Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2018-11-21 04:53:16 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2018-11-21 05:04:55 +0000 sys-apps/portage: revbump to 2.3.52-r1 for bug 671472 Add trivial fix for an annoying regression in handling of broken ebuilds. Reported-by: Reinis Danne <rei4dan@gmail.com> Closes: https://bugs.gentoo.org/671472 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Zac Medico <zmedico@gentoo.org> .../portage/{portage-2.3.52.ebuild => portage-2.3.52-r1.ebuild} | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef23d0461d59c5e9c5627bf1c1e10cf120ae411b commit ef23d0461d59c5e9c5627bf1c1e10cf120ae411b Author: Zac Medico <zmedico@gentoo.org> AuthorDate: 2018-11-21 04:53:16 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2018-11-21 05:04:55 +0000 sys-apps/portage: revbump to 2.3.51-r1 for bug 671472 Add trivial fix for an annoying regression in handling of broken ebuilds. Reported-by: Reinis Danne <rei4dan@gmail.com> Closes: https://bugs.gentoo.org/671472 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Zac Medico <zmedico@gentoo.org> sys-apps/portage/Manifest | 1 + .../portage/{portage-2.3.51.ebuild => portage-2.3.51-r1.ebuild} | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) |