commit:     1fc628eead43fa5da4b142479aa004ded8acceab
Author:     Zac Medico <zmedico <AT> gentoo <DOT> org>
AuthorDate: Wed Jun  6 04:26:40 2018 +0000
Commit:     Zac Medico <zmedico <AT> gentoo <DOT> org>
CommitDate: Wed Jun  6 04:26:40 2018 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=1fc628ee

AbstractEbuildProcess: handle SIGINT during dir lock (bug 657436)

When the build dir lock is interrupted by SIGINT/TERM, avoid raising
an unwanted CancelledError.

Bug: https://bugs.gentoo.org/657436

 pym/_emerge/AbstractEbuildProcess.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pym/_emerge/AbstractEbuildProcess.py 
b/pym/_emerge/AbstractEbuildProcess.py
index af6429a00..bda0bd83f 100644
--- a/pym/_emerge/AbstractEbuildProcess.py
+++ b/pym/_emerge/AbstractEbuildProcess.py
@@ -171,6 +171,13 @@ class AbstractEbuildProcess(SpawnProcess):
                        if lock_future is not self._start_future:
                                raise AssertionError('lock_future is not 
self._start_future')
                        self._start_future = None
+                       if lock_future.cancelled():
+                               self._build_dir = None
+                               self.cancelled = True
+                               self._was_cancelled()
+                               self._async_wait()
+                               return
+
                        lock_future.result()
 
                if start_ipc_daemon:

Reply via email to