[anaconda][master/f22-branch] Can't add thread AnaExecuteStorageThread (#1200613)

Vratislav Podzimek vpodzime at redhat.com
Fri Mar 20 07:59:17 UTC 2015


On Thu, 2015-03-19 at 17:16 +0100, Jiri Konecny wrote:
> Before start of the new thread 'AnaExecuteStorageThread' wait for the old thread
> to finish.
> Remove gtk_action_nowait to prevent blocking of main thread.
> ---
>  pyanaconda/ui/gui/spokes/storage.py | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
> index 8273dcb..bba16f9 100644
> --- a/pyanaconda/ui/gui/spokes/storage.py
> +++ b/pyanaconda/ui/gui/spokes/storage.py
> @@ -308,11 +308,13 @@ class StorageSpoke(NormalSpoke, StorageChecker):
>          # user may have set up before now.
>          self.storage.config.clearNonExistent = self.data.autopart.autopart
>  
> -    @gtk_action_nowait
>      def execute(self):
>          # Spawn storage execution as a separate thread so there's no big delay
>          # going back from this spoke to the hub while StorageChecker.run runs.
>          # Yes, this means there's a thread spawning another thread.  Sorry.
> +
> +        # Wait for the existing thread to finish before starting the new one.
> +        threadMgr.wait(name=constants.THREAD_EXECUTE_STORAGE)
>          threadMgr.add(AnacondaThread(name=constants.THREAD_EXECUTE_STORAGE,
>                                       target=self._doExecute))
This is definitely a good check/thing to do and we should have it in the
code. What's still a bit concerning to me though is that AFAICT it
shouldn't be possible to enter the Storage spoke while the
THREAD_EXECUTE_STORAGE thread is running. There are probably some weird
races and this should prevent the crash caused by them, but we should
probably at least have a chance to find out that we hit the race
condition again. So, could you please add a line that would log a
warning (or at least debug message) when we need to wait for the thread?

Other than that this looks good to me.

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic



More information about the anaconda-patches mailing list