Patch to fix automatic update bug where it waits for Begin Installation to be clicked on F19

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We have seen automated installs get stuck waiting for a human to click the
"Begin Installation" button in the Anaconda Hub on Fedora 19; the patch
below is one route to fixing this.

class Hub function _update_spokes is responsible for "clicking"
the "Begin Installation" button when flags.automatedInstall is
True.

But this does not always happen because there can be a HUB_CODE_MESSAGE
queued up after the last HUB_CODE_READY. For example the following
anaconda.log extract show the sequence that waits for user input:

12:11:48,563 INFO anaconda: Thread Done: AnaExecuteStorageThread 
(140112910321408)
12:11:48,576 DEBUG anaconda: updating hostname localhost.localdomain
12:11:48,597 DEBUG anaconda: updating hostname localhost.localdomain
12:11:48,607 INFO anaconda: fs space: 4.09 GB  needed: 3 GB
12:11:48,607 INFO anaconda: spoke is ready: 
<pyanaconda.ui.gui.spokes.storage.StorageSpoke object at 0x7f6e956f0b90>
12:11:48,607 INFO anaconda: setting 
<pyanaconda.ui.gui.spokes.network.NetworkSpoke object at 0x7f6e956db750> 
status to: Wired (eth0) connected
12:11:48,697 INFO anaconda: Thread Done: AnaCustomStorageInit 
(140112840689408)
12:11:54,622 INFO anaconda: Thread Done: AnaNTPserver0 (140112830719744)

Here it is the NetworkSpoke that sends "Wired (eth0) connected".

The patch set "click_continue_deferred" when the continueButton would
be clicked if only the Hub queue was empty. Then honours the action
after processing the HUB_CODE_MESSAGE.

The patch is against the code in anaconda-19.30.13-1.fc19.x86_64.

Barry



--- usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/hubs/__init__.py.orig   
2013-11-11 14:30:35.954615167 +0000
+++ usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/hubs/__init__.py        
2013-11-11 14:30:50.281938975 +0000
@@ -303,6 +303,8 @@
             # no spokes, move on
             gtk_call_once(self.continueButton.emit, "clicked")
 
+        click_continue_deferred = False
+
         # Grab all messages that may have appeared since last time this 
method ran.
         while True:
             try:
@@ -350,12 +352,19 @@
                     if self.continuePossible:
                         if self._inSpoke:
                             self._autoContinue = False
-                        elif self._autoContinue and q.empty():
-                            # enqueue the emit to the Gtk message queue
-                            gtk_call_once(self.continueButton.emit, 
"clicked")
+                        elif self._autoContinue:
+                            if q.empty():
+                                # enqueue the emit to the Gtk message queue
+                                gtk_call_once(self.continueButton.emit, 
"clicked")
+                            else:
+                                click_continue_deferred = True
             elif code == hubQ.HUB_CODE_MESSAGE:
                 spoke.selector.set_property("status", args[1])
                 log.info("setting %s status to: %s" % (spoke, args[1]))
+                if click_continue_deferred and q.empty():
+                    click_continue_deferred = False
+                    # enqueue the emit to the Gtk message queue
+                    gtk_call_once(self.continueButton.emit, "clicked")
 
             q.task_done()





_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list




[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux