Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 653508 - sys-apps/portage-2.3.30 idle callback recursion
Summary: sys-apps/portage-2.3.30 idle callback recursion
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
: 653544 (view as bug list)
Depends on:
Blocks: 651804
  Show dependency tree
Reported: 2018-04-18 19:58 UTC by Michael Cook
Modified: 2018-04-19 14:56 UTC (History)
2 users (show)

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

Failed libretro-info (games-emulation_libretro-info-9999_build.log.gz,4.72 KB, application/gzip)
2018-04-18 19:58 UTC, Michael Cook

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Cook 2018-04-18 19:58:00 UTC
Created attachment 528018 [details]
Failed libretro-info

I can pretty reliably trigger this. I do have --jobs=4 in my EMERGE_DEFAULT_OPTS, which is probably required. I do not think it's too dependent on packages either, but I can reliably trigger it with 2 packages in the abendbrot overlay. (games-emulation/retroarch-joypad-autoconfig and games-emulation/libretro-info)

I haven't had issues emerging them one at a time or with --jobs=1 where with jobs > 1 I get one or both failing.

My biggest concern is that when I ran emerge @smart-live-rebuild I had these 2 packages fail, however when I reran it to see if they would fail again, smart-live-rebuild actually failed to detect one of them (retroarch-joypad-autoconfig) needed to be updated, but since it failed, it should have been detected as outdated again. This causes me concern if it would happen to something more system critical. (it does appear /var/db/pkg stuff is being modified, sometimes)

Both the tracebacks look the same, I can attach the other one if you want me to.
Comment 1 Ryan El Kochta 2018-04-18 20:50:25 UTC
Am also experiencing this while attempting to merge two packages at the same time.

I also recently ran smart-live-rebuild.
Comment 2 Zac Medico gentoo-dev 2018-04-18 21:01:24 UTC
I see what's wrong. I'm working on a fix now.
Comment 3 Larry the Git Cow gentoo-dev 2018-04-18 21:52:06 UTC
The bug has been referenced in the following commit(s):

commit b443b87c5397867c287f3bc4c5f1f4fa5e234d0a
Author:     Zac Medico <>
AuthorDate: 2018-04-18 21:38:33 +0000
Commit:     Zac Medico <>
CommitDate: 2018-04-18 21:49:42 +0000

    EventLoop._run_idle_callbacks: support recursive calls (bug 653508)
    Since recursive calls must be supported until all consumers of the
    AsynchronousLock.unlock() method have been migrated to use the
    async_unlock() method (bug 614108.), support recursive calls by using
    a self._idle_callbacks_remaining loop control variable that is reset
    by each recursive call.
    Fixes: 9772f8f2a58a (EventLoop._idle_add: use thread-safe deque append)

 pym/portage/util/_eventloop/ | 60 ++++++++++++++------------------
 1 file changed, 26 insertions(+), 34 deletions(-)}
Comment 4 Larry the Git Cow gentoo-dev 2018-04-18 22:31:19 UTC
The bug has been closed via the following commit(s):

commit 78997b43cf35eb9e061a51f2f8b8aa1c185b09e9
Author:     Zac Medico <>
AuthorDate: 2018-04-18 22:29:08 +0000
Commit:     Zac Medico <>
CommitDate: 2018-04-18 22:31:11 +0000

    sys-apps/portage: version bump to 2.3.31
      #653508 - AssertionError: idle callback recursion
      #640318 - emerge --usepkgonly: propagate implicit IUSE and USE_EXPAND
    Package-Manager: Portage-2.3.31, Repoman-2.3.9

 sys-apps/portage/Manifest                          |   3 +-
 sys-apps/portage/portage-2.3.30.ebuild             | 284 ---------------------
 ...portage-2.3.29.ebuild => portage-2.3.31.ebuild} |   0
 3 files changed, 1 insertion(+), 286 deletions(-)
Comment 5 Zac Medico gentoo-dev 2018-04-18 22:53:45 UTC
It should work fine with portage-2.3.31. Thanks for the report!
Comment 6 Lars Wendler (Polynomial-C) gentoo-dev 2018-04-19 14:56:45 UTC
*** Bug 653544 has been marked as a duplicate of this bug. ***