summaryrefslogtreecommitdiffstats
path: root/debian/panic-action
diff options
context:
space:
mode:
Diffstat (limited to 'debian/panic-action')
-rw-r--r--debian/panic-action63
1 files changed, 63 insertions, 0 deletions
diff --git a/debian/panic-action b/debian/panic-action
new file mode 100644
index 0000000..7b73024
--- /dev/null
+++ b/debian/panic-action
@@ -0,0 +1,63 @@
+#!/bin/sh
+
+# bail out if there's no "mail" command
+type mail >/dev/null 2>&1 || exit 0
+
+# Redirect all output to our mail command
+(
+ # We must be given a pid to look at
+ if [ -z "$1" ]; then
+ echo "$0 called with no arguments."
+ exit 1
+ fi
+
+ if [ ! -d "/proc/$1" ]; then
+ echo "$0: No such process: $1"
+ exit 1
+ fi
+
+ # Find out what binary we're debugging
+ BINARYNAME=`readlink "/proc/$1/exe"`
+
+ # Generic header for our email
+ echo "The Samba 'panic action' script, $0,"
+ echo "was called for PID $1 ($BINARYNAME)."
+ echo
+
+ echo "This means there was a problem with the program, such as a segfault."
+
+ if [ -z "$BINARYNAME" ]; then
+ echo "However, the executable could not be found for process $1."
+ echo "It may have died unexpectedly, or you may not have permission to debug"
+ echo "the process."
+ exit 1
+ fi
+
+ # No debugger
+ if [ ! -x /usr/bin/gdb ]; then
+ echo "However, gdb was not found on your system, so the error could not be"
+ echo "debugged. Please install the gdb package so that debugging information"
+ echo "is available the next time such a problem occurs."
+ exit 1
+ fi
+
+ echo "Below is a backtrace for this process generated with gdb, which shows"
+ echo "the state of the program at the time the error occurred. The Samba log"
+ echo "files may contain additional information about the problem."
+ echo
+ echo "If the problem persists, you are encouraged to first install the"
+ echo "samba-dbgsym package, which contains the debugging symbols for the Samba"
+ echo "binaries. Then submit the provided information as a bug report to"
+ if [ -x "`which lsb_release 2>/dev/null`" ] \
+ && [ "`lsb_release -s -i`" = "Ubuntu" ]
+ then
+ echo "Ubuntu by visiting this link:"
+ echo "https://launchpad.net/ubuntu/+source/samba/+filebug"
+ else
+ echo "Debian. For information about the procedure for submitting bug reports,"
+ echo "please see http://www.debian.org/Bugs/Reporting or the reportbug(1)"
+ echo "manual page."
+ fi
+ echo
+ gdb -x /etc/samba/gdbcommands -batch "$BINARYNAME" "$1"
+) | mail -s "Panic or segfault in Samba" root