Blame 0004-abrtd-always-explain-why-we-delete-corrupted-dir.-Cl.patch

Jiri 676fa8e
From 26a0f776d32d0d5be2e15abe781adf5a830c24cc Mon Sep 17 00:00:00 2001
Jiri 676fa8e
From: Denys Vlasenko <dvlasenk@redhat.com>
Jiri 676fa8e
Date: Wed, 7 Dec 2011 14:14:56 +0100
Jiri 676fa8e
Subject: [PATCH 4/5] abrtd: always explain why we delete "corrupted" dir.
Jiri 676fa8e
 Closes rhbz#706131.
Jiri 676fa8e
Jiri 676fa8e
We were almost always explaining it, except for the case when
Jiri 676fa8e
'post-create' was failing silently.
Jiri 676fa8e
Jiri 676fa8e
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Jiri 676fa8e
---
Jiri 676fa8e
 src/daemon/abrtd.c |   12 +++++++++++-
Jiri 676fa8e
 1 files changed, 11 insertions(+), 1 deletions(-)
Jiri 676fa8e
Jiri 676fa8e
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
Jiri 676fa8e
index 743e40f..b5c3d4b 100644
Jiri 676fa8e
--- a/src/daemon/abrtd.c
Jiri 676fa8e
+++ b/src/daemon/abrtd.c
Jiri 676fa8e
@@ -313,14 +313,24 @@ static mw_result_t run_post_create_and_load_data(const char *dump_dir_name, prob
Jiri 676fa8e
     /* Prevent having zombie child process */
Jiri 676fa8e
     int status;
Jiri 676fa8e
     safe_waitpid(child, &status, 0);
Jiri 676fa8e
-    /* status = WEXITSTATUS(status); - wrong, we need to check WIFEXITED too */
Jiri 676fa8e
 
Jiri 676fa8e
     /* exit 0 means "this is a good, non-dup dir" */
Jiri 676fa8e
     /* exit with 1 + "DUP_OF_DIR: dir" string => dup */
Jiri 676fa8e
     if (status != 0)
Jiri 676fa8e
     {
Jiri 676fa8e
+        if (WIFSIGNALED(status))
Jiri 676fa8e
+        {
Jiri 676fa8e
+            log("'post-create' on '%s' killed by signal %d",
Jiri 676fa8e
+                            dump_dir_name, WTERMSIG(status));
Jiri 676fa8e
+            return MW_ERROR;
Jiri 676fa8e
+        }
Jiri 676fa8e
+        /* else: it is WIFEXITED(status) */
Jiri 676fa8e
         if (!dup_of_dir)
Jiri 676fa8e
+        {
Jiri 676fa8e
+            log("'post-create' on '%s' exited with %d",
Jiri 676fa8e
+                            dump_dir_name, WEXITSTATUS(status));
Jiri 676fa8e
             return MW_ERROR;
Jiri 676fa8e
+        }
Jiri 676fa8e
         dump_dir_name = dup_of_dir;
Jiri 676fa8e
     }
Jiri 676fa8e
 
Jiri 676fa8e
-- 
Jiri 676fa8e
1.7.7.3
Jiri 676fa8e