Make ebuild-ipc kill the child IO process before it exits due to timeout.
authorZac Medico <zmedico@gentoo.org>
Tue, 21 Sep 2010 01:43:10 +0000 (18:43 -0700)
committerZac Medico <zmedico@gentoo.org>
Tue, 21 Sep 2010 01:43:10 +0000 (18:43 -0700)
bin/ebuild-ipc.py

index 9f6157dda6fd06e8698d57d75f958e3146e482b2..af152e11e85ed2736d1db1ea6f390c48e320b5d6 100755 (executable)
@@ -112,6 +112,13 @@ class EbuildIpc(object):
                                        self._timeout_retry_msg(start_time, msg)
                                else:
                                        self._no_daemon_msg()
+                                       try:
+                                               os.kill(pid, signal.SIGKILL)
+                                               os.wait()
+                                       except OSError as e:
+                                               portage.util.writemsg_level(
+                                                       "ebuild-ipc: %s\n" % (e,),
+                                                       level=logging.ERROR, noiselevel=-1)
                                        return 2
 
                if not os.WIFEXITED(wait_retval[1]):
@@ -200,7 +207,7 @@ class EbuildIpc(object):
                        portage.util.writemsg_level(
                                "ebuild-ipc: %s: %s\n" % (msg,
                                portage.localization._('subprocess failure: %s') % \
-                               wait_retval[1]), level=logging.ERROR, noiselevel=-1)
+                               retval), level=logging.ERROR, noiselevel=-1)
                        return retval
 
                if not self._daemon_is_alive():