Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 461412 - Set resolution takes long without user feedback
Summary: Set resolution takes long without user feedback
Status: RESOLVED FIXED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: Normal minor (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords: InVCS
Depends on:
Blocks: 144480 462382
  Show dependency tree
 
Reported: 2013-03-11 15:49 UTC by Martin von Gagern
Modified: 2013-03-19 22:41 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 Martin von Gagern 2013-03-11 15:49:42 UTC
I just waited about 3 minutes for "emerge @x11-module-rebuild" to START the "Calculating dependencies" thingy. During that time, I had no visual feedback at all. The process seemed pretty much CPU-bound, and according to strace was reading stuff in /var/db/*/*/CONTENTS of such stuff as KDE and similar. Guess it tried to find files installed into a given directory. But having some kind of feedback during that process would be highly desirable.
Comment 1 Zac Medico gentoo-dev 2013-03-11 16:57:37 UTC
We can add an asynchronous interface for set loading, and break that /var/db/pkg loop into a series of iterations that are scheduled on the global event loop.
Comment 2 Zac Medico gentoo-dev 2013-03-13 05:11:36 UTC
Here's a minimal fix which defers package set loading until after the "Calculating dependencies" message has displayed:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=16e1f2185bb7ed36d3119b29a50ca0ff75fa8b71
Comment 3 Zac Medico gentoo-dev 2013-03-13 05:57:33 UTC
Use the event loop to update the spinner:

http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=8e130a60c9f4d6ab7f1de547015c4ce0b0045041
Comment 4 Zac Medico gentoo-dev 2013-03-19 22:41:42 UTC
This is fixed in 2.1.11.56 and 2.2.0_alpha167.