263 lines
8 KiB
Diff
263 lines
8 KiB
Diff
From a2afee1970cc9bf4f7563a8002741a8f07e58bb2 Mon Sep 17 00:00:00 2001
|
|
From: Nikola Pajkovsky <npajkovs@redhat.com>
|
|
Date: Mon, 27 Jun 2011 16:45:50 +0200
|
|
Subject: [PATCH] Revert "Merge branch 'daemon/dump-location'"
|
|
|
|
This reverts commit b4e0ff6fadd6bfcb2915a544747d0b09d53dbada, reversing
|
|
changes made to c7197324b1e9e33260a1d9fd7e26528d9d562abc.
|
|
(cherry picked from commit 35f05af76aab482f834cb2ebd28888899def7259)
|
|
|
|
diff --git a/configure.ac b/configure.ac
|
|
index baf0f01..d53bcd1 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -142,7 +142,6 @@ AC_CONFIG_FILES([
|
|
src/Makefile
|
|
src/daemon/Makefile
|
|
src/hooks/Makefile
|
|
- src/hooks/abrt-install-ccpp-hook
|
|
src/applet/Makefile
|
|
src/gui-gtk/Makefile
|
|
po/Makefile.in
|
|
diff --git a/src/daemon/abrt.conf b/src/daemon/abrt.conf
|
|
index 0946d7c..cb0dbbb 100644
|
|
--- a/src/daemon/abrt.conf
|
|
+++ b/src/daemon/abrt.conf
|
|
@@ -27,5 +27,3 @@ BlackListedPaths = /usr/share/doc/*,*/example*
|
|
# Max size for crash storage [MiB] or 0 for unlimited
|
|
#
|
|
MaxCrashReportsSize = 1000
|
|
-
|
|
-DumpLocation = /var/spool/abrt
|
|
diff --git a/src/hooks/Makefile.am b/src/hooks/Makefile.am
|
|
index 962e326..95cd363 100644
|
|
--- a/src/hooks/Makefile.am
|
|
+++ b/src/hooks/Makefile.am
|
|
@@ -27,7 +27,7 @@ abrt_hook_ccpp_LDADD = \
|
|
$(LIBREPORT_LIBS)
|
|
|
|
python_PYTHON = abrt.pth abrt_exception_handler.py
|
|
-EXTRA_DIST = abrt_exception_handler.py.in abrt-install-ccpp-hook.in $(man_MANS)
|
|
+EXTRA_DIST = abrt_exception_handler.py.in abrt-install-ccpp-hook $(man_MANS)
|
|
|
|
CLEANFILES := $(notdir $(wildcard *~)) $(notdir $(wildcard *\#)) $(notdir $(wildcard \.\#*)) $(notdir $(wildcard *.pyc))
|
|
|
|
diff --git a/src/hooks/abrt-install-ccpp-hook b/src/hooks/abrt-install-ccpp-hook
|
|
new file mode 100755
|
|
index 0000000..12a443f
|
|
--- /dev/null
|
|
+++ b/src/hooks/abrt-install-ccpp-hook
|
|
@@ -0,0 +1,97 @@
|
|
+#!/bin/bash
|
|
+# Install coredump handler which saves segfault data
|
|
+
|
|
+# For debugging
|
|
+
|
|
+dry_run=false
|
|
+verbose=false
|
|
+
|
|
+PATTERN_FILE="/proc/sys/kernel/core_pattern"
|
|
+SAVED_PATTERN_DIR="/var/run/abrt"
|
|
+SAVED_PATTERN_FILE="/var/run/abrt/saved_core_pattern"
|
|
+HOOK_BIN="/usr/libexec/abrt-hook-ccpp"
|
|
+# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
|
+PATTERN="|$HOOK_BIN /var/spool/abrt %s %c %p %u %g %t %e"
|
|
+# Same, but with bogus "executable name" parameter
|
|
+PATTERN1="|$HOOK_BIN /var/spool/abrt %s %c %p %u %g %t e"
|
|
+
|
|
+# core_pipe_limit specifies how many dump_helpers can run at the same time
|
|
+# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
|
+# process will be available for dump_helper.
|
|
+# 4 - means that 4 dump_helpers can run at the same time (the rest will also
|
|
+# run, but they will fail to read /proc/<pid>).
|
|
+#
|
|
+# This should be enough for ABRT, we can miss some crashes, but what are
|
|
+# the odds that more processes crash at the same time? And moreover,
|
|
+# do people want to save EVERY ONE of the crashes when they have
|
|
+# a crash storm? I don't think so.
|
|
+# The value of 4 has been recommended by nhorman.
|
|
+#
|
|
+CORE_PIPE_LIMIT_FILE="/proc/sys/kernel/core_pipe_limit"
|
|
+CORE_PIPE_LIMIT="4"
|
|
+
|
|
+start() {
|
|
+ cur=`cat "$PATTERN_FILE"`
|
|
+ cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
|
|
+
|
|
+ # Is there a %e (executable name) in old pattern anywhere?
|
|
+ if test x"${cur#.*%e}" = x"${cur}"; then
|
|
+ # No. Can use PATTERN with less risk of overflow
|
|
+ # on expansion (executable names can be LONG).
|
|
+ # Overflow would cause kernel to abort coredump. BAD.
|
|
+ PATTERN="$PATTERN1"
|
|
+ fi
|
|
+
|
|
+ $verbose && printf "cur:'%s'\n" "$cur"
|
|
+ # Is it already installed?
|
|
+ if test x"$cur_first" != x"|$HOOK_BIN"; then # no
|
|
+ # It is not installed
|
|
+ mkdir -p -- "$SAVED_PATTERN_DIR"
|
|
+ printf "%s\n" "$cur" >"$SAVED_PATTERN_FILE"
|
|
+ # Install new handler
|
|
+ $verbose && printf "Installing to %s:'%s'\n" "$PATTERN_FILE" "$PATTERN"
|
|
+ $dry_run || echo "$PATTERN" >"$PATTERN_FILE"
|
|
+
|
|
+ # Check core_pipe_limit and change it if it's 0,
|
|
+ # otherwise the abrt-hook-ccpp won't be able to read /proc/<pid>
|
|
+ # of the crashing process
|
|
+ if test x"`cat "$CORE_PIPE_LIMIT_FILE"`" = x"0"; then
|
|
+ echo "$CORE_PIPE_LIMIT" >"$CORE_PIPE_LIMIT_FILE"
|
|
+ fi
|
|
+ fi
|
|
+}
|
|
+
|
|
+stop() {
|
|
+ if test -f "$SAVED_PATTERN_FILE"; then
|
|
+ $verbose && printf "Restoring to %s:'%s'\n" "$PATTERN_FILE" "`cat "$SAVED_PATTERN_FILE"`"
|
|
+ $dry_run || cat "$SAVED_PATTERN_FILE" >"$PATTERN_FILE"
|
|
+ fi
|
|
+}
|
|
+
|
|
+status() {
|
|
+ cur=`cat "$PATTERN_FILE"`
|
|
+ cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
|
|
+ # Is it already installed?
|
|
+ if test x"$cur_first" = x"|$HOOK_BIN"; then # yes
|
|
+ $verbose && printf "Installed\n"
|
|
+ return 0
|
|
+ else
|
|
+ $verbose && printf "Not installed\n"
|
|
+ return 1
|
|
+ fi
|
|
+}
|
|
+
|
|
+case "$1" in
|
|
+install)
|
|
+ start
|
|
+ ;;
|
|
+uninstall)
|
|
+ stop
|
|
+ ;;
|
|
+is-installed)
|
|
+ status
|
|
+ ;;
|
|
+*)
|
|
+ echo $"Usage: $0 {install|uninstall|is-installed}"
|
|
+ return 2
|
|
+esac
|
|
diff --git a/src/hooks/abrt-install-ccpp-hook.in b/src/hooks/abrt-install-ccpp-hook.in
|
|
deleted file mode 100755
|
|
index 9c7df75..0000000
|
|
--- a/src/hooks/abrt-install-ccpp-hook.in
|
|
+++ /dev/null
|
|
@@ -1,107 +0,0 @@
|
|
-#!/bin/bash
|
|
-# Install coredump handler which saves segfault data
|
|
-
|
|
-# For debugging
|
|
-
|
|
-dry_run=false
|
|
-verbose=false
|
|
-
|
|
-DEFAULT_LOCATION=/var/spool/abrt
|
|
-
|
|
-DUMP_LOCATION=`cat @sysconfdir@/abrt/abrt.conf | grep '^[ ]*DumpLocation'`
|
|
-DUMP_LOCATION=${DUMP_LOCATION#*DumpLocation*=}
|
|
-DUMP_LOCATION=${DUMP_LOCATION// /}
|
|
-
|
|
-if [ "$DUMP_LOCATION" = "" ]; then
|
|
- DUMP_LOCATION=$DEFAULT_LOCATION
|
|
-fi
|
|
-
|
|
-PATTERN_FILE="/proc/sys/kernel/core_pattern"
|
|
-SAVED_PATTERN_DIR="/var/run/abrt"
|
|
-SAVED_PATTERN_FILE="/var/run/abrt/saved_core_pattern"
|
|
-HOOK_BIN="/usr/libexec/abrt-hook-ccpp"
|
|
-# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
|
-PATTERN="|$HOOK_BIN $DUMP_LOCATION %s %c %p %u %g %t %e"
|
|
-# Same, but with bogus "executable name" parameter
|
|
-PATTERN1="|$HOOK_BIN $DUMP_LOCATION %s %c %p %u %g %t e"
|
|
-
|
|
-# core_pipe_limit specifies how many dump_helpers can run at the same time
|
|
-# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
|
-# process will be available for dump_helper.
|
|
-# 4 - means that 4 dump_helpers can run at the same time (the rest will also
|
|
-# run, but they will fail to read /proc/<pid>).
|
|
-#
|
|
-# This should be enough for ABRT, we can miss some crashes, but what are
|
|
-# the odds that more processes crash at the same time? And moreover,
|
|
-# do people want to save EVERY ONE of the crashes when they have
|
|
-# a crash storm? I don't think so.
|
|
-# The value of 4 has been recommended by nhorman.
|
|
-#
|
|
-CORE_PIPE_LIMIT_FILE="/proc/sys/kernel/core_pipe_limit"
|
|
-CORE_PIPE_LIMIT="4"
|
|
-
|
|
-start() {
|
|
- cur=`cat "$PATTERN_FILE"`
|
|
- cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
|
|
-
|
|
- # Is there a %e (executable name) in old pattern anywhere?
|
|
- if test x"${cur#.*%e}" = x"${cur}"; then
|
|
- # No. Can use PATTERN with less risk of overflow
|
|
- # on expansion (executable names can be LONG).
|
|
- # Overflow would cause kernel to abort coredump. BAD.
|
|
- PATTERN="$PATTERN1"
|
|
- fi
|
|
-
|
|
- $verbose && printf "cur:'%s'\n" "$cur"
|
|
- # Is it already installed?
|
|
- if test x"$cur_first" != x"|$HOOK_BIN"; then # no
|
|
- # It is not installed
|
|
- mkdir -p -- "$SAVED_PATTERN_DIR"
|
|
- printf "%s\n" "$cur" >"$SAVED_PATTERN_FILE"
|
|
- # Install new handler
|
|
- $verbose && printf "Installing to %s:'%s'\n" "$PATTERN_FILE" "$PATTERN"
|
|
- $dry_run || echo "$PATTERN" >"$PATTERN_FILE"
|
|
-
|
|
- # Check core_pipe_limit and change it if it's 0,
|
|
- # otherwise the abrt-hook-ccpp won't be able to read /proc/<pid>
|
|
- # of the crashing process
|
|
- if test x"`cat "$CORE_PIPE_LIMIT_FILE"`" = x"0"; then
|
|
- echo "$CORE_PIPE_LIMIT" >"$CORE_PIPE_LIMIT_FILE"
|
|
- fi
|
|
- fi
|
|
-}
|
|
-
|
|
-stop() {
|
|
- if test -f "$SAVED_PATTERN_FILE"; then
|
|
- $verbose && printf "Restoring to %s:'%s'\n" "$PATTERN_FILE" "`cat "$SAVED_PATTERN_FILE"`"
|
|
- $dry_run || cat "$SAVED_PATTERN_FILE" >"$PATTERN_FILE"
|
|
- fi
|
|
-}
|
|
-
|
|
-status() {
|
|
- cur=`cat "$PATTERN_FILE"`
|
|
- cur_first=`printf "%s" "$cur" | sed 's/ .*//'`
|
|
- # Is it already installed?
|
|
- if test x"$cur_first" = x"|$HOOK_BIN"; then # yes
|
|
- $verbose && printf "Installed\n"
|
|
- return 0
|
|
- else
|
|
- $verbose && printf "Not installed\n"
|
|
- return 1
|
|
- fi
|
|
-}
|
|
-
|
|
-case "$1" in
|
|
-install)
|
|
- start
|
|
- ;;
|
|
-uninstall)
|
|
- stop
|
|
- ;;
|
|
-is-installed)
|
|
- status
|
|
- ;;
|
|
-*)
|
|
- echo $"Usage: $0 {install|uninstall|is-installed}"
|
|
- return 2
|
|
-esac
|
|
--
|
|
1.7.6
|
|
|