--- a/usr/src/cmd/text-install/__init__.py Tue Aug 09 16:18:22 2011 -0700
+++ b/usr/src/cmd/text-install/__init__.py Mon Aug 22 16:20:07 2011 -0700
@@ -158,7 +158,6 @@
result = []
result.append(WelcomeScreen(main_win, install_data))
disk_screen = DiskScreen(main_win, target_controller)
- disk_screen.start_discovery()
result.append(disk_screen)
result.append(FDiskPart(main_win, target_controller))
result.append(PartEditScreen(main_win, target_controller))
@@ -168,6 +167,12 @@
result.append(PartEditScreen(main_win, target_controller,
x86_slice_mode=True))
result.extend(sysconfig.get_all_screens(main_win))
+
+ # do not run target discovery until after all the sysconfig screens
+ # are configured. Otherwise, subprocess.Popen will be running
+ # in parallel in multiple threads and it might lead to deadlock
+ # as discussed in Python bug 2320.
+ disk_screen.start_discovery()
result.append(SummaryScreen(main_win))
result.append(InstallProgress(main_win, install_data, target_controller))