Bug 826904

Summary: Anaconda doesn't refresh its screen
Product: [Fedora] Fedora Reporter: Nadav Har'El <nyh>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 17CC: anaconda-maint-list, g.kaviyarasu, imc, jonathan, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: anaconda-18.3 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-03 19:41:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Nadav Har'El 2012-05-31 08:44:21 UTC
My environment: An upgrade of Fedora 16 to Fedora 17, initiated with preupgrade.

When Anaconda installs a couple thousand packages and shows the name of the package currently being installed and a progress bar - the screen only gets updated every time Anaconda switches packages. Some packages take very long to install (at worst case - they never complete - see bug 822008), in which case if the window's content is obscured (e.g., if you switch to a different virtual terminal), it never gets redrawn.

This is not a new bug - I've been annoyed for it for several Fedora releases, but I now decided it's time to do something about it...

I don't know in what language/framework Anaconda is written in, and I didn't look at the code, but my guess is that your code forks off the package installation code and then *waits* for it to complete, instead of continuing to spin around in the X Window event loop, like it should (and indeed must) for handling XExposeEvent. Rather, you should run the package installer in a child process (as I'm sure you're already doing), and in the parent process continue to loop in the X Window event loop and also wait also waiting for the child's completion (via SIGCHLD or periodic waitpid) at the same time.

Comment 1 Chris Lumens 2012-08-03 19:41:13 UTC
This should be fixed in the new ui included with anaconda-18.3.  Finally.

Comment 2 Ian Collier 2012-09-20 15:08:28 UTC
Sorry for hijacking this bug report... there is a similar issue at the end of a fresh F17 install.  Once the progress bar reaches N/N (where N is about 2,700 in the case of installs I'm doing at the moment) the whole thing sits there for about 10 minutes with no user feedback.  If VT is switched during this time, the screen remains blank until it's finished doing whatever it's doing.  Would this be fixed in anaconda 18 as well?