Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 653508

Summary: sys-apps/portage-2.3.30 idle callback recursion
Product: Portage Development Reporter: Michael Cook <mackal.cook>
Component: CoreAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: candrews, relkochta
Priority: Normal Keywords: InVCS, REGRESSION
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=614108
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 651804    
Attachments: Failed libretro-info

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):

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

commit b443b87c5397867c287f3bc4c5f1f4fa5e234d0a
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-04-18 21:38:33 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
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)
    Bug: https://bugs.gentoo.org/653508

 pym/portage/util/_eventloop/EventLoop.py | 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):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78997b43cf35eb9e061a51f2f8b8aa1c185b09e9

commit 78997b43cf35eb9e061a51f2f8b8aa1c185b09e9
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2018-04-18 22:29:08 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
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
    
    Closes: https://bugs.gentoo.org/653508
    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) (RETIRED) gentoo-dev 2018-04-19 14:56:45 UTC
*** Bug 653544 has been marked as a duplicate of this bug. ***