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