]> git.sur5r.net Git - bacula/docs/blobdiff - docs/manuals/de/old/problems/kaboom.tex
Simplify do_echo and update_version
[bacula/docs] / docs / manuals / de / old / problems / kaboom.tex
diff --git a/docs/manuals/de/old/problems/kaboom.tex b/docs/manuals/de/old/problems/kaboom.tex
deleted file mode 100644 (file)
index a4e5bc5..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-%%
-%%
-
-\chapter{What To Do When Bacula Crashes (Kaboom)}
-\label{KaboomChapter}
-\index[general]{Kaboom!What To Do When Bacula Crashes }
-\index[general]{What To Do When Bacula Crashes (Kaboom) }
-
-If you are running on a Linux system, and you have a set of working
-configuration files, it is very unlikely that {\bf Bacula} will crash. As with
-all software, however, it is inevitable that someday, it may crash,
-particularly if you are running on another operating system or using a new or
-unusual feature. 
-
-This chapter explains what you should do if one of the three {\bf Bacula}
-daemons (Director, File, Storage) crashes.  When we speak of crashing, we 
-mean that the daemon terminates abnormally because of an error.  There are
-many cases where Bacula detects errors (such as PIPE errors) and will fail 
-a job. These are not considered crashes.  In addition, under certain
-conditions, Bacula will detect a fatal in the configuration, such as 
-lack of permission to read/write the working directory. In that case,
-Bacula will force itself to crash with a SEGFAULT. However, before
-crashing, Bacula will normally display a message indicating why.    
-For more details, please read on.
-  
-
-\section{Traceback}
-\index[general]{Traceback}
-
-Each of the three Bacula daemons has a built-in exception handler which, in
-case of an error, will attempt to produce a traceback. If successful the
-traceback will be emailed to you. 
-
-For this to work, you need to ensure that a few things are setup correctly on
-your system: 
-
-\begin{enumerate}
-\item You must have a version of Bacula built with debug information turned
-   on and not stripped of debugging symbols.
-
-\item You must have an installed copy of {\bf gdb} (the GNU debugger),  and it
-   must be on {\bf Bacula's} path. On some systems such as Solaris, {\bf
-   gdb} may be replaced by {\bf dbx}.
-
-\item The Bacula installed script file {\bf btraceback} must  be in the same
-   directory as the daemon which dies, and it must  be marked as executable.  
-
-\item The script file {\bf btraceback.gdb} must  have the correct  path to it
-   specified in the {\bf btraceback} file.  
-
-\item You must have a {\bf mail} program which is on {\bf Bacula's}  path. 
-   By default, this {\bf mail} program is set to {\bf bsmtp}, so it must
-   be correctly configured.
-
-\item If you run either the Director or Storage daemon under a non-root
-   userid, you will most likely need to modify the {\bf btraceback} file
-   to do something like {\bf sudo} (raise to root priority) for the       
-   call to {\bf gdb} so that it has the proper permissions to debug
-   Bacula.
-\end{enumerate}
-
-If all the above conditions are met, the daemon that crashes will produce a
-traceback report and email it to you. If the above conditions are not true,
-you can either run the debugger by hand as described below, or you may be able
-to correct the problems by editing the {\bf btraceback} file. I recommend not
-spending too much time on trying to get the traceback to work as it can be
-very difficult. 
-
-The changes that might be needed are to add a correct path to the {\bf gdb}
-program, correct the path to the {\bf btraceback.gdb} file, change the {\bf
-mail} program or its path, or change your email address. The key line in the
-{\bf btraceback} file is: 
-
-\footnotesize
-\begin{verbatim}
-gdb -quiet -batch -x /home/kern/bacula/bin/btraceback.gdb \
-     $1 $2 2>\&1 | bsmtp -s "Bacula traceback" your-address@xxx.com
-\end{verbatim}
-\normalsize
-
-Since each daemon has the same traceback code, a single btraceback file is
-sufficient if you are running more than one daemon on a machine. 
-
-\section{Testing The Traceback}
-\index[general]{Traceback!Testing The }
-\index[general]{Testing The Traceback }
-
-To "manually" test the traceback feature, you simply start {\bf Bacula} then
-obtain the {\bf PID} of the main daemon thread (there are multiple threads).
-The output produced here will look different depending on what OS and what
-version of the kernel you are running.
-Unfortunately, the output had to be split to fit on this page: 
-
-\footnotesize
-\begin{verbatim}
-[kern@rufus kern]$ ps fax --columns 132 | grep bacula-dir
- 2103 ?        S      0:00 /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
- 2104 ?        S      0:00  \_ /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
- 2106 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
- 2105 ?        S      0:00      \_ /home/kern/bacula/k/src/dird/bacula-dir -c
-                                       /home/kern/bacula/k/src/dird/dird.conf
-\end{verbatim}
-\normalsize
-
-which in this case is 2103. Then while Bacula is running, you call the program
-giving it the path to the Bacula executable and the {\bf PID}. In this case,
-it is: 
-
-\footnotesize
-\begin{verbatim}
-./btraceback /home/kern/bacula/k/src/dird 2103
-\end{verbatim}
-\normalsize
-
-It should produce an email showing you the current state of the daemon (in
-this case the Director), and then exit leaving {\bf Bacula} running as if
-nothing happened. If this is not the case, you will need to correct the
-problem by modifying the {\bf btraceback} script. 
-
-Typical problems might be that {\bf gdb} or {\bf dbx} for Solaris is not on
-the default path.  Fix this by specifying the full path to it in the {\bf
-btraceback} file.  Another common problem is that you haven't modified the
-script so that the {\bf bsmtp} program has an appropriate smtp server or
-the proper syntax for your smtp server.  If you use the {\bf mail} program
-and it is not on the default path, it will also fail.  On some systems, it
-is preferable to use {\bf Mail} rather than {\bf mail}.
-
-\section{Getting A Traceback On Other Systems}
-\index[general]{Getting A Traceback On Other Systems}
-\index[general]{Systems!Getting A Traceback On Other}
-
-It should be possible to produce a similar traceback on systems other than
-Linux, either using {\bf gdb} or some other debugger. Solaris with {\bf dbx}
-loaded works quite fine. On other systems, you will need to modify the {\bf
-btraceback} program to invoke the correct debugger, and possibly correct the
-{\bf btraceback.gdb} script to have appropriate commands for your debugger. If
-anyone succeeds in making this work with another debugger, please send us a
-copy of what you modified. Please keep in mind that for any debugger to
-work, it will most likely need to run as root, so you may need to modify
-the {\bf btraceback} script accordingly.
-
-\label{ManuallyDebugging}
-\section{Manually Running Bacula Under The Debugger}
-\index[general]{Manually Running Bacula Under The Debugger}
-\index[general]{Debugger!Manually Running Bacula Under The}
-
-If for some reason you cannot get the automatic traceback, or if you want to
-interactively examine the variable contents after a crash, you can run Bacula
-under the debugger. Assuming you want to run the Storage daemon under the
-debugger (the technique is the same for the other daemons, only the name
-changes), you would do the following: 
-
-\begin{enumerate}
-\item Start the Director and the File daemon. If the  Storage daemon also
-   starts, you will need to find its PID  as shown above (ps fax | grep
-   bacula-sd) and kill it  with a command like the following:  
-
-\footnotesize
-\begin{verbatim}
-      kill -15 PID
-\end{verbatim}
-\normalsize
-
-where you replace {\bf PID} by the actual value. 
-
-\item At this point, the Director and the File daemon should  be running but
-   the Storage daemon should not.  
-
-\item cd to the directory containing the Storage daemon  
-
-\item Start the Storage daemon under the debugger:  
-
-   \footnotesize
-\begin{verbatim}
-    gdb ./bacula-sd
-\end{verbatim}
-\normalsize
-
-\item Run the Storage daemon:  
-
-   \footnotesize
-\begin{verbatim}
-     run -s -f -c ./bacula-sd.conf
-\end{verbatim}
-\normalsize
-
-You may replace the {\bf ./bacula-sd.conf} with the full path  to the Storage
-daemon's configuration file.  
-
-\item At this point, Bacula will be fully operational.  
-
-\item In another shell command window, start the Console program  and do what
-   is necessary to cause Bacula to die.  
-
-\item When Bacula crashes, the {\bf gdb} shell window will  become active and
-   {\bf gdb} will show you the error that  occurred.  
-
-\item To get a general traceback of all threads, issue the following  command:
-
-\footnotesize
-\begin{verbatim}
-       thread apply all bt
-\end{verbatim}
-\normalsize
-
-After that you can issue any debugging command. 
-\end{enumerate}
-
-\section{Getting Debug Output from Bacula}
-\index[general]{Getting Debug Output from Bacula }
-Each of the daemons normally has debug compiled into the program, but
-disabled. There are two ways to enable the debug output. One is to add the
-{\bf -d nnn} option on the command line when starting the debugger. The {\bf
-nnn} is the debug level, and generally anything between 50 and 200 is
-reasonable. The higher the number, the more output is produced. The output is
-written to standard output. 
-
-The second way of getting debug output is to dynamically turn it on using the
-Console using the {\bf setdebug} command. The full syntax of the command is: 
-
-\footnotesize
-\begin{verbatim}
- setdebug level=nnn client=client-name storage=storage-name dir
-\end{verbatim}
-\normalsize
-
-If none of the options are given, the command will prompt you. You can
-selectively turn on/off debugging in any or all the daemons (i.e. it is not
-necessary to specify all the components of the above command).