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