[rhel6-branch] loader: print if anaconda was killed by a signal and dump core.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Related: rhbz#607650
---
 loader/loader.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/loader/loader.c b/loader/loader.c
index 63594d8..1debabe 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -45,6 +45,8 @@
 #include <arpa/inet.h>
 
 #include <sys/ioctl.h>
+#include <sys/resource.h>
+#include <sys/time.h>
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <sys/stat.h>
@@ -2317,6 +2319,13 @@ int main(int argc, char ** argv) {
     stopNewt();
     closeLog();
 
+    /* if anaconda dies suddenly we are doomed, so at least make a coredump */
+    struct rlimit corelimit = { RLIM_INFINITY,  RLIM_INFINITY};
+    ret = setrlimit(RLIMIT_CORE, &corelimit);
+    if (ret) {
+        fprintf(stderr, "Unable to set the core dump limit.\n");
+    }
+
     if (FL_RESCUE(flags)) {
         fmt = _("Running anaconda %s, the %s rescue mode - please wait.\n");
     } else {
@@ -2338,6 +2347,11 @@ int main(int argc, char ** argv) {
     } else {
         rc = 0;
     }
+    /* investigate more how the anaconda process ended */
+    if (WIFSIGNALED(status)) {
+        ret = WTERMSIG(status);
+        fprintf(stderr, "Anaconda died after receiving signal %d.\n", ret);
+    }
 
     if ((rc == 0) && (FL_POWEROFF(flags) || FL_HALT(flags))) {
         if (!(pid = fork())) {
-- 
1.7.0.1

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux