diff options
Diffstat (limited to 'docs/htmldocs/Samba3-HOWTO/bugreport.html')
-rw-r--r-- | docs/htmldocs/Samba3-HOWTO/bugreport.html | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/docs/htmldocs/Samba3-HOWTO/bugreport.html b/docs/htmldocs/Samba3-HOWTO/bugreport.html new file mode 100644 index 0000000000..41486fee97 --- /dev/null +++ b/docs/htmldocs/Samba3-HOWTO/bugreport.html @@ -0,0 +1,159 @@ +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 40. Reporting Bugs</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.71.0"><link rel="start" href="index.html" title="The Official Samba-3 HOWTO and Reference Guide"><link rel="up" href="troubleshooting.html" title="Part V. Troubleshooting"><link rel="prev" href="problems.html" title="Chapter 39. Analyzing and Solving Samba Problems"><link rel="next" href="Appendix.html" title="Part VI. Reference Section"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 40. Reporting Bugs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="problems.html">Prev</a> </td><th width="60%" align="center">Part V. Troubleshooting</th><td width="20%" align="right"> <a accesskey="n" href="Appendix.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="bugreport"></a>Chapter 40. Reporting Bugs</h2></div><div><div class="author"><h3 class="author"><span class="firstname">John</span> <span class="othername">H.</span> <span class="surname">Terpstra</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a href="mailto:jht@samba.org">jht@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Jelmer</span> <span class="othername">R.</span> <span class="surname">Vernooij</span></h3><div class="affiliation"><span class="orgname">The Samba Team<br></span><div class="address"><p><code class="email"><<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>></code></p></div></div></div></div><div><div class="author"><h3 class="author"><span class="firstname">Andrew</span> <span class="surname">Tridgell</span></h3><div class="affiliation"><span class="orgname">Samba Team<br></span><div class="address"><p><code class="email"><<a href="mailto:tridge@samba.org">tridge@samba.org</a>></code></p></div></div></div></div><div><p class="pubdate"> 27 June 1997 </p></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1"><a href="bugreport.html#id441297">Introduction</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id441377">General Information</a></span></dt><dt><span class="sect1"><a href="bugreport.html#dbglvl">Debug Levels</a></span></dt><dd><dl><dt><span class="sect2"><a href="bugreport.html#id441581">Debugging-Specific Operations</a></span></dt></dl></dd><dt><span class="sect1"><a href="bugreport.html#id441779">Internal Errors</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id441901">Attaching to a Running Process</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id442016">Patches</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id441297"></a>Introduction</h2></div></div></div><p> +<a class="indexterm" name="id441305"></a> +<a class="indexterm" name="id441312"></a> +Please report bugs using Samba's <a href="https://bugzilla.samba.org/" target="_top">Bugzilla</a> facilities and take +the time to read this file before you submit a bug report. Also, check to see if it has changed between +releases, as we may be changing the bug reporting mechanism at some point. +</p><p> +Please do as much as you can yourself to help track down the +bug. Samba is maintained by a dedicated group of people who volunteer +their time, skills, and efforts. We receive far more mail than +we can possibly answer, so you have a much higher chance of a response +and a fix if you send us a “<span class="quote">developer-friendly</span>” bug report that lets +us fix it fast. +</p><p> +<a class="indexterm" name="id441339"></a> +<a class="indexterm" name="id441346"></a> +<a class="indexterm" name="id441353"></a> +If you post the bug to the comp.protocols.smb +newsgroup or the mailing list, do not assume that we will read it. If you suspect that your +problem is not a bug but a configuration problem, it is better to send +it to the Samba mailing list, as there are thousands of other users on +that list who may be able to help you. +</p><p> +You may also like to look though the recent mailing list archives, +which are conveniently accessible on the Samba Web pages +at <a href="http://samba.org/samba/" target="_top">http://samba.org/samba/</a>. +</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id441377"></a>General Information</h2></div></div></div><p> +Before submitting a bug report, check your config for silly +errors. Look in your log files for obvious messages that tell +you've misconfigured something. Run testparm to check your config +file for correct syntax. +</p><p> +Have you looked through <a href="diagnosis.html" title="Chapter 38. The Samba Checklist">The Samba Checklist</a>? This is extremely important. +</p><p> +If you include part of a log file with your bug report, then be sure to +annotate it with exactly what you were doing on the client at the +time and exactly what the results were. +</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="dbglvl"></a>Debug Levels</h2></div></div></div><p> +If the bug has anything to do with Samba behaving incorrectly as a +server (like refusing to open a file), then the log files will probably +be quite useful. Depending on the problem, a log level of between 3 and +10 showing the problem may be appropriate. A higher level gives more +detail but may use too much disk space. +</p><p> +<a class="indexterm" name="id441421"></a> +<a class="indexterm" name="id441428"></a> +To set the debug level, use the <a class="indexterm" name="id441435"></a>log level in your +<code class="filename">smb.conf</code>. You may also find it useful to set the log +level higher for just one machine and keep separate logs for each machine. +To do this, add the following lines to your main <code class="filename">smb.conf</code> file: +</p><table class="simplelist" border="0" summary="Simple list"><tr><td><a class="indexterm" name="id441462"></a><em class="parameter"><code>log level = 10</code></em></td></tr><tr><td><a class="indexterm" name="id441475"></a><em class="parameter"><code>log file = /usr/local/samba/lib/log.%m</code></em></td></tr><tr><td><a class="indexterm" name="id441487"></a><em class="parameter"><code>include = /usr/local/samba/lib/smb.conf.%m</code></em></td></tr></table><p> +and create a file <code class="filename">/usr/local/samba/lib/smb.conf.<em class="replaceable"><code>machine</code></em></code> where +<em class="replaceable"><code>machine</code></em> is the name of the client you wish to debug. In that file put any +<code class="filename">smb.conf</code> commands you want; for example, <a class="indexterm" name="id441521"></a>log level may be useful. This also allows +you to experiment with different security systems, protocol levels, and so on, on just one machine. +</p><p> +The <code class="filename">smb.conf</code> entry <a class="indexterm" name="id441539"></a>log level is synonymous with the parameter <a class="indexterm" name="id441546"></a>debuglevel that has been used in older versions of Samba and is being retained for backward +compatibility of <code class="filename">smb.conf</code> files. +</p><p> +As the <a class="indexterm" name="id441564"></a>log level value is increased, you will record a significantly greater level of +debugging information. For most debugging operations, you may not need a setting higher than +<code class="constant">3</code>. Nearly all bugs can be tracked at a setting of <code class="constant">10</code>, but be +prepared for a large volume of log data. +</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id441581"></a>Debugging-Specific Operations</h3></div></div></div><p> +<a class="indexterm" name="id441588"></a> +<a class="indexterm" name="id441595"></a> +<a class="indexterm" name="id441602"></a> +<a class="indexterm" name="id441609"></a> + Samba-3.x permits debugging (logging) of specific functional components without unnecessarily + cluttering the log files with detailed logs for all operations. An example configuration to + achieve this is shown in: + </p><p> +</p><table class="simplelist" border="0" summary="Simple list"><tr><td><a class="indexterm" name="id441626"></a><em class="parameter"><code>log level = 0 tdb:3 passdb:5 auth:4 vfs:2</code></em></td></tr><tr><td><a class="indexterm" name="id441639"></a><em class="parameter"><code>max log size = 0</code></em></td></tr><tr><td><a class="indexterm" name="id441652"></a><em class="parameter"><code>log file = /var/log/samba/%U.%m.log</code></em></td></tr></table><p> +</p><p> + This will cause the level of detail to be expanded to the debug class (log level) passed to + each functional area per the value shown above. The first value passed to the <em class="parameter"><code>log level</code></em> + of <code class="constant">0</code> means turn off all unnecessary debugging except the debug classes set for + the functional areas as specified. The table shown in <a href="bugreport.html#dbgclass" title="Table 40.1. Debuggable Functions">Debuggable Functions</a> + may be used to attain very precise analysis of each SMB operation Samba is conducting. + </p><div class="table"><a name="dbgclass"></a><p class="title"><b>Table 40.1. Debuggable Functions</b></p><div class="table-contents"><table summary="Debuggable Functions" border="1"><colgroup><col><col></colgroup><thead><tr><th align="center">Function Name</th><th align="center">Function Name</th></tr></thead><tbody><tr><td align="center">all</td><td align="center">passdb</td></tr><tr><td align="center">tdb</td><td align="center">sam</td></tr><tr><td align="center">printdrivers</td><td align="center">auth</td></tr><tr><td align="center">lanman</td><td align="center">winbind</td></tr><tr><td align="center">smb</td><td align="center">vfs</td></tr><tr><td align="center">rpc_parse</td><td align="center">idmap</td></tr><tr><td align="center">rpc_srv</td><td align="center">quota</td></tr><tr><td align="center">rpc_cli</td><td align="center">acls</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id441779"></a>Internal Errors</h2></div></div></div><p> +If you get the message “<span class="quote"><span class="errorname">INTERNAL ERROR</span></span>” in your log files, +it means that Samba got an unexpected signal while running. It is probably a +segmentation fault and almost certainly means a bug in Samba (unless +you have faulty hardware or system software). +</p><p> +If the message came from smbd, it will probably be accompanied by +a message that details the last SMB message received by smbd. This +information is often useful in tracking down the problem, so please +include it in your bug report. +</p><p> +You should also detail how to reproduce the problem, if +possible. Please make this reasonably detailed. +</p><p> +<a class="indexterm" name="id441806"></a> +You may also find that a core file appeared in a <code class="filename">corefiles</code> +subdirectory of the directory where you keep your Samba log +files. This file is the most useful tool for tracking down the bug. To +use it, you do this: +<a class="indexterm" name="id441821"></a> +<a class="indexterm" name="id441828"></a> +</p><pre class="screen"> +<code class="prompt">$ </code><strong class="userinput"><code>gdb smbd core</code></strong> +</pre><p> +</p><p> +<a class="indexterm" name="id441853"></a> +<a class="indexterm" name="id441860"></a> +adding appropriate paths to smbd and core so gdb can find them. If you +do not have gdb, try <strong class="userinput"><code>dbx</code></strong>. Then within the debugger, +use the command <code class="literal">where</code> to give a stack trace of where the +problem occurred. Include this in your report. +</p><p> +<a class="indexterm" name="id441883"></a> +If you know any assembly language, do a <code class="literal">disass</code> of the routine +where the problem occurred (if it's in a library routine, then +disassemble the routine that called it) and try to work out exactly +where the problem is by looking at the surrounding code. Even if you +do not know assembly, including this information in the bug report can be +useful. +</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id441901"></a>Attaching to a Running Process</h2></div></div></div><p> +<a class="indexterm" name="id441909"></a> +<a class="indexterm" name="id441915"></a> +<a class="indexterm" name="id441922"></a> +Unfortunately, some UNIXes (in particular some recent Linux kernels) +refuse to dump a core file if the task has changed UID (which smbd +does often). To debug with this sort of system, you could try to attach +to the running process using +<strong class="userinput"><code>gdb smbd <em class="replaceable"><code>PID</code></em></code></strong>, where you get +<em class="replaceable"><code>PID</code></em> from <span class="application">smbstatus</span>. +Then use <code class="literal">c</code> to continue and try to cause the core dump +using the client. The debugger should catch the fault and tell you +where it occurred. +</p><p> +Sometimes it is necessary to build Samba binary files that have debugging +symbols so as to make it possible to capture enough information from a crashed +operation to permit the Samba Team to fix the problem. +</p><p> +Compile with <code class="constant">-g</code> to ensure you have symbols in place. +Add the following line to the <code class="filename">smb.conf</code> file global section: +</p><pre class="screen"> +panic action = "/bin/sleep 90000" +</pre><p> +to catch any panics. If <code class="literal">smbd</code> seems to be frozen, look for any sleep +processes. If it is not, and appears to be spinning, find the PID +of the spinning process and type: +</p><pre class="screen"> +<code class="prompt">root# </code> gdb /usr/local/samba/sbin/smbd +</pre><p> +<a class="indexterm" name="id441999"></a> +then “<span class="quote">attach `pid'</span>” (of the spinning process), then type “<span class="quote">bt</span>” to +get a backtrace to see where the smbd is in the call path. +</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id442016"></a>Patches</h2></div></div></div><p> +<a class="indexterm" name="id442024"></a> +<a class="indexterm" name="id442030"></a> +The best sort of bug report is one that includes a fix! If you send us +patches, please use <strong class="userinput"><code>diff -u</code></strong> format if your version of +diff supports it; otherwise, use <strong class="userinput"><code>diff -c4</code></strong>. Make sure +you do the diff against a clean version of the source and let me know +exactly what version you used. +</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="problems.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="troubleshooting.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="Appendix.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 39. Analyzing and Solving Samba Problems </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part VI. Reference Section</td></tr></table></div></body></html> |