49 lines
1.8 KiB
Diff
49 lines
1.8 KiB
Diff
From 2c48b73b5d449df26053d5d95f98f2ef01610d46 Mon Sep 17 00:00:00 2001
|
|
From: Matej Habrnal <mhabrnal@redhat.com>
|
|
Date: Tue, 8 Mar 2016 16:45:36 +0100
|
|
Subject: [PATCH] a-a-install-debuginfo: fix BrokenPipe error
|
|
|
|
While debug info is downloading and stop button is pressed the BrokenPipe
|
|
error appears.
|
|
|
|
If the stop button is pressed, gui wizard sends SIGTERM to all
|
|
processes with the same group ID so abrt-action-install-debuginfo got SIGTERM
|
|
as well. It has its own SIGTERM handler which calls clean_up() function and it
|
|
takes a while before the tool is terminated.
|
|
abrt-action-install-debuginfo tries to write some messages to the closed socket
|
|
during the clean_up process and it raises a BrokenPipe exception. We must
|
|
ensure that no message will be printed after SIGTERM is recieved.
|
|
|
|
Related to: #1255259
|
|
|
|
Signed-off-by: Matej Habrnal <mhabrnal@redhat.com>
|
|
---
|
|
src/plugins/abrt-action-install-debuginfo.in | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/plugins/abrt-action-install-debuginfo.in b/src/plugins/abrt-action-install-debuginfo.in
|
|
index 7818ffd..e4a7dfd 100644
|
|
--- a/src/plugins/abrt-action-install-debuginfo.in
|
|
+++ b/src/plugins/abrt-action-install-debuginfo.in
|
|
@@ -44,7 +44,7 @@ def init_gettext():
|
|
gettext.textdomain(GETTEXT_PROGNAME)
|
|
|
|
def sigterm_handler(signum, frame):
|
|
- clean_up(TMPDIR)
|
|
+ clean_up(TMPDIR, silent=True)
|
|
exit(RETURN_OK)
|
|
|
|
def sigint_handler(signum, frame):
|
|
@@ -241,6 +241,9 @@ if __name__ == "__main__":
|
|
try:
|
|
result = downloader.download(missing, download_exact_files=exact_fls)
|
|
except Exception as ex:
|
|
+ if ex.errno == errno.EPIPE:
|
|
+ clean_up(TMPDIR, silent=True)
|
|
+ exit(RETURN_FAILURE)
|
|
error_msg_and_die("Can't download debuginfos: %s", ex)
|
|
|
|
if exact_fls:
|
|
--
|
|
2.5.5
|
|
|