summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/AbstractEbuildProcess.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-03-09 21:46:17 -0800
committerZac Medico <zmedico@gentoo.org>2011-03-09 21:55:11 -0800
commitc649695a92379892a1d545edd12c2bb3dc8c7e41 (patch)
tree0f896329bd36522f77081c1eceeaba0e7b423018 /pym/_emerge/AbstractEbuildProcess.py
parent6b604d43c68cab45ea5668042a53c23d4012bb18 (diff)
downloadportage-c649695a92379892a1d545edd12c2bb3dc8c7e41.tar.gz
portage-c649695a92379892a1d545edd12c2bb3dc8c7e41.tar.bz2
portage-c649695a92379892a1d545edd12c2bb3dc8c7e41.zip
AbstractPollTask: log exceptional events
Previously, when AbstractPollTask receives a POLLERR or POLLNVAL event, it would silently cancel the task. Now it will generate a message like this: !!! SpawnProcess received strange poll event: 8 The message is displayed via a new _log_poll_exception method, which is overridden by AbstractEbuildProcess to log the message via elog. This might help diagnose reported cases of SIGTERM signals killing ebuild processes for no apparent reason: http://code.google.com/p/chromium-os/issues/detail?id=12968
Diffstat (limited to 'pym/_emerge/AbstractEbuildProcess.py')
-rw-r--r--pym/_emerge/AbstractEbuildProcess.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/pym/_emerge/AbstractEbuildProcess.py b/pym/_emerge/AbstractEbuildProcess.py
index 601aafe0e..d7f31be28 100644
--- a/pym/_emerge/AbstractEbuildProcess.py
+++ b/pym/_emerge/AbstractEbuildProcess.py
@@ -228,6 +228,11 @@ class AbstractEbuildProcess(SpawnProcess):
self.scheduler.output(msg,
log_path=self.settings.get("PORTAGE_LOG_FILE"))
+ def _log_poll_exception(self, event):
+ self._elog("eerror",
+ ["%s received strange poll event: %s\n" % \
+ (self.__class__.__name__, event,)])
+
def _set_returncode(self, wait_retval):
SpawnProcess._set_returncode(self, wait_retval)