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