Use handler mutex for checks, not session mutex
[freeradius.git] / doc / bugs
index 52e74bf..2d6d878 100644 (file)
--- a/doc/bugs
+++ b/doc/bugs
@@ -117,7 +117,43 @@ BUGS
   Submitting it to the bug database ensures that the bug report won't
   get forgotten, and that someone will eventually respond to it.
 
+
+5. VALGRIND
+
+  On Linux systems, "valgrind" is a useful tool that can catch certain
+  classes of bugs.  To use it, run the server voa:
+
+$ valgrind --tool=memcheck --leak-check=full radiusd -Xm
+
+  It will print out certain kinds of errors to the screen.  There may
+  be a number of errors related to OpenSSL, dlopen(), or libtldl.  We
+  cannot do anything about those problems.  However, any errors that are
+  inside of the FreeRADIUS source should be brought to our attention.
+
+
+6. Running with "screen"
+
+  If the bug is a crash of the server, and it takes a long time for the
+  crash to happen, perform the following steps:
+
+ * log in as root
+ * open a screen session (http://blogamundo.net/code/screen/)
+   $ screen bash
+ * make sure FreeRADIUS is not running
+ * make sure you have all the debug symbols about, or a debugable 
+   version of the server installed
+ * configure screen to log to a file; 'Ctrl-A H'
+ * type 'gdb /path/to/radius'  (or /path/to/freeradius on Debian)
+ * at the (gdb) prompt, type 'run -X'
+ * detach from screen 'Ctrl-A D'
+ * when you notice FreeRADIUS has died, reconnect to your screen session
+   $ screen -D -r
+ * at the (gdb) prompt type 'where' or for *lots* of info try
+   'thread apply all bt full'
+ * tell screen to stop logging, 'Ctrl-A H'
+ * logout from screen
+
 --
 
-FreeRADIUS Project, copyright 2004
+FreeRADIUS Project, copyright 2008
 $Id$