Login
Log in using an SSO provider:
Fedora Account System
Red Hat Associate
Red Hat Customer
Login using a Red Hat Bugzilla account
Forgot Password
Create an Account
Red Hat Bugzilla – Attachment 624104 Details for
Bug 862801
Anaconda hangs when 'Configuring installed system'
Home
New
Search
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh90 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
[?]
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Threading code changes used for a test
thread-patch.patch (text/plain), 9.21 KB, created by
Martin Sivák
on 2012-10-09 13:31:33 UTC
(
hide
)
Description:
Threading code changes used for a test
Filename:
MIME Type:
Creator:
Martin Sivák
Created:
2012-10-09 13:31:33 UTC
Size:
9.21 KB
patch
obsolete
>diff --git a/anaconda b/anaconda >index 411bb07..871b38b 100755 >--- a/anaconda >+++ b/anaconda >@@ -899,6 +899,10 @@ if __name__ == "__main__": > else: > log.error("Unknown method: %s", (anaconda.methodstr,)) > >+ # initialize threading >+ from pyanaconda.threads import initThreading, threadMgr, AnacondaThread >+ initThreading() >+ > # now start the interface > setupDisplay(anaconda, opts) > >@@ -947,13 +951,11 @@ if __name__ == "__main__": > from pyanaconda.storage import storageInitialize > from pyanaconda.packaging import payloadInitialize > from pyanaconda.network import networkInitialize >- from pyanaconda.threads import initThreading, threadMgr, AnacondaThread > > if anaconda.rescue: > from pyanaconda.rescue import doRescue > doRescue(anaconda.rescue_mount, ksdata, anaconda.platform) > >- initThreading() > threadMgr.add(AnacondaThread(name="AnaStorageThread", target=storageInitialize, args=(anaconda.storage, ksdata, anaconda.protected))) > threadMgr.add(AnacondaThread(name="AnaPayloadThread", target=payloadInitialize, args=(anaconda.storage, ksdata, anaconda.payload))) > # TODO start dhcp in thread if we have no connection >diff --git a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py >index 638772b..1c323ad 100644 >--- a/pyanaconda/ui/gui/__init__.py >+++ b/pyanaconda/ui/gui/__init__.py >@@ -112,7 +112,8 @@ class GraphicalUserInterface(UserInterface): > {"productName": productName.upper(), "productVersion": productVersion}) > > self._actions[0].window.show_all() >- Gtk.main() >+ with gdk_threaded(): >+ Gtk.main() > > ### > ### MESSAGE HANDLING METHODS >diff --git a/pyanaconda/ui/gui/hubs/progress.py b/pyanaconda/ui/gui/hubs/progress.py >index 9cb95eb..7319e46 100644 >--- a/pyanaconda/ui/gui/hubs/progress.py >+++ b/pyanaconda/ui/gui/hubs/progress.py >@@ -224,32 +224,31 @@ class ProgressHub(Hub): > return self.builder.get_object("rebootButton") > > def _init_progress_bar(self, steps): >+ """This is progress bar initialization called from the timer callback.""" > self._totalSteps = steps > self._currentStep = 0 >- >- with gdk_threaded(): >- self._progressBar.set_fraction(0.0) >+ self._progressBar.set_fraction(0.0) > > def _step_progress_bar(self): >+ """This moves progress bar one step further, called from the timer callback.""" > if not self._totalSteps: > return > >- with gdk_threaded(): >- self._currentStep += 1 >- self._progressBar.set_fraction(self._currentStep/self._totalSteps) >+ self._currentStep += 1 >+ self._progressBar.set_fraction(self._currentStep/self._totalSteps) > > def _update_progress_message(self, message): >+ """This updates the progress bar message, called from the timer callback.""" > if not self._totalSteps: > return > >- with gdk_threaded(): >- self._progressLabel.set_text(message) >+ self._progressLabel.set_text(message) > > def _progress_bar_complete(self): >- with gdk_threaded(): >- self._progressBar.set_fraction(1.0) >- self._progressLabel.set_text(_("Complete!")) >- >- spinner = self.builder.get_object("progressSpinner") >- spinner.stop() >- spinner.hide() >+ """This sets the progress bar to completed state. Called from the timer callback.""" >+ self._progressBar.set_fraction(1.0) >+ self._progressLabel.set_text(_("Complete!")) >+ >+ spinner = self.builder.get_object("progressSpinner") >+ spinner.stop() >+ spinner.hide() >diff --git a/pyanaconda/ui/gui/spokes/keyboard.py b/pyanaconda/ui/gui/spokes/keyboard.py >index c2e9b86..308ed81 100644 >--- a/pyanaconda/ui/gui/spokes/keyboard.py >+++ b/pyanaconda/ui/gui/spokes/keyboard.py >@@ -260,13 +260,13 @@ class KeyboardSpoke(NormalSpoke): > > # Signal handlers. > def on_add_clicked(self, button): >+ """Called by main loop when Add button was clicked.""" > dialog = AddLayoutDialog(self.data) > dialog.refresh() > dialog.initialize() > >- with gdk_threaded(): >- with enlightbox(self.window, dialog.window): >- response = dialog.run() >+ with enlightbox(self.window, dialog.window): >+ response = dialog.run() > > if response == 1: > duplicates = set() >diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py >index fb172cb..13198ff 100644 >--- a/pyanaconda/ui/gui/spokes/software.py >+++ b/pyanaconda/ui/gui/spokes/software.py >@@ -167,19 +167,19 @@ class SoftwareSelectionSpoke(NormalSpoke): > > communication.send_message(self.__class__.__name__, _("Downloading group metadata...")) > >- with gdk_threaded(): >- # Grabbing the list of groups could potentially take a long time the >- # first time (yum does a lot of magic property stuff, some of which >- # involves side effects like network access) so go ahead and grab >- # them once now. >- try: >+ # Grabbing the list of groups could potentially take a long time the >+ # first time (yum does a lot of magic property stuff, some of which >+ # involves side effects like network access) so go ahead and grab >+ # them once now. >+ try: >+ with gdk_threaded(): > self.refresh() >- except MetadataError: >- communication.send_message(self.__class__.__name__, >- _("No installation source available")) >- return >+ except MetadataError: >+ communication.send_message(self.__class__.__name__, >+ _("No installation source available")) >+ return > >- self.payload.release() >+ self.payload.release() > > communication.send_ready(self.__class__.__name__) > >diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py >index 7738728..b34570f 100644 >--- a/pyanaconda/ui/gui/spokes/source.py >+++ b/pyanaconda/ui/gui/spokes/source.py >@@ -623,17 +623,17 @@ class SourceSpoke(NormalSpoke): > cdrom = None > chosen = False > >- with gdk_threaded(): >- # If we've previously set up to use a CD/DVD method, the media has >- # already been mounted by payload.setup. We can't try to mount it >- # again. So just use what we already know to create the selector. >- # Otherwise, check to see if there's anything available. >- if self.data.method.method == "cdrom": >- cdrom = self.payload.install_device >- chosen = True >- else: >- cdrom = opticalInstallMedia(self.storage.devicetree, mountpoint=MOUNTPOINT) >+ # If we've previously set up to use a CD/DVD method, the media has >+ # already been mounted by payload.setup. We can't try to mount it >+ # again. So just use what we already know to create the selector. >+ # Otherwise, check to see if there's anything available. >+ if self.data.method.method == "cdrom": >+ cdrom = self.payload.install_device >+ chosen = True >+ else: >+ cdrom = opticalInstallMedia(self.storage.devicetree, mountpoint=MOUNTPOINT) > >+ with gdk_threaded(): > if cdrom: > selector = AnacondaWidgets.DiskOverview(cdrom.format.label or "", "drive-removable-media", "") > selector.path = cdrom.path >diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py >index 535671e..0cf7c59 100644 >--- a/pyanaconda/ui/gui/spokes/storage.py >+++ b/pyanaconda/ui/gui/spokes/storage.py >@@ -437,16 +437,17 @@ class StorageSpoke(NormalSpoke, StorageChecker): > if len(self.disks) == 1 and not self.selected_disks: > self.data.ignoredisk.onlyuse = [self.disks[0].name] > >- with gdk_threaded(): >- # properties: kind, description, capacity, os, popup-info >- for disk in self.disks: >- if disk.removable: >- kind = "drive-removable-media" >- else: >- kind = "drive-harddisk" >- >- size = size_str(disk.size) >- popup_info = "%s | %s" % (disk.name, disk.serial) >+ >+ # properties: kind, description, capacity, os, popup-info >+ for disk in self.disks: >+ if disk.removable: >+ kind = "drive-removable-media" >+ else: >+ kind = "drive-harddisk" >+ >+ size = size_str(disk.size) >+ popup_info = "%s | %s" % (disk.name, disk.serial) >+ with gdk_threaded(): > overview = AnacondaWidgets.DiskOverview(disk.description, > kind, > size, >@@ -462,7 +463,7 @@ class StorageSpoke(NormalSpoke, StorageChecker): > overview.connect("key-release-event", self._on_disk_clicked) > overview.show_all() > >- self._update_summary() >+ self._update_summary() > > self._ready = True > communication.send_ready(self.__class__.__name__)
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 862801
:
620980
|
620981
|
620982
|
620983
|
620984
|
622284
|
622287
|
622807
|
623378
|
623379
|
623380
|
623381
| 624104 |
624106
|
624880
|
624881
|
624888