1<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.74.0"><link rel="home" href="index.html" title="The Official Samba 3.5.x 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="tdb.html" title="Chapter�41.�Managing TDB Files"></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="tdb.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="orgname">Samba Team</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 class="email" 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="orgname">The Samba Team</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 class="email" 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="orgname">Samba Team</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 class="email" 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#id2685866">Introduction</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id2685956">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#id2686191">Debugging-Specific Operations</a></span></dt></dl></dd><dt><span class="sect1"><a href="bugreport.html#id2686393">Internal Errors</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id2686526">Attaching to a Running Process</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id2686652">Patches</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2685866"></a>Introduction</h2></div></div></div><p> 2<a class="indexterm" name="id2685874"></a> 3<a class="indexterm" name="id2685881"></a> 4Please report bugs using Samba's <a class="ulink" href="https://bugzilla.samba.org/" target="_top">Bugzilla</a> facilities and take 5the time to read this file before you submit a bug report. Also, check to see if it has changed between 6releases, as we may be changing the bug reporting mechanism at some point. 7</p><p> 8Please do as much as you can yourself to help track down the 9bug. Samba is maintained by a dedicated group of people who volunteer 10their time, skills, and efforts. We receive far more mail than 11we can possibly answer, so you have a much higher chance of a response 12and a fix if you send us a “<span class="quote">developer-friendly</span>” bug report that lets 13us fix it fast. 14</p><p> 15<a class="indexterm" name="id2685914"></a> 16<a class="indexterm" name="id2685921"></a> 17<a class="indexterm" name="id2685927"></a> 18If you post the bug to the comp.protocols.smb 19newsgroup or the mailing list, do not assume that we will read it. If you suspect that your 20problem is not a bug but a configuration problem, it is better to send 21it to the Samba mailing list, as there are thousands of other users on 22that list who may be able to help you. 23</p><p> 24You may also like to look though the recent mailing list archives, 25which are conveniently accessible on the Samba Web pages 26at <a class="ulink" href="http://samba.org/samba/" target="_top">http://samba.org/samba/</a>. 27</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2685956"></a>General Information</h2></div></div></div><p> 28Before submitting a bug report, check your config for silly 29errors. Look in your log files for obvious messages that tell 30you've misconfigured something. Run testparm to check your config 31file for correct syntax. 32</p><p> 33Have you looked through <a class="link" href="diagnosis.html" title="Chapter�38.�The Samba Checklist">The Samba Checklist</a>? This is extremely important. 34</p><p> 35If you include part of a log file with your bug report, then be sure to 36annotate it with exactly what you were doing on the client at the 37time and exactly what the results were. 38</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> 39If the bug has anything to do with Samba behaving incorrectly as a 40server (like refusing to open a file), then the log files will probably 41be quite useful. Depending on the problem, a log level of between 3 and 4210 showing the problem may be appropriate. A higher level gives more 43detail but may use too much disk space. 44</p><p> 45<a class="indexterm" name="id2686007"></a> 46<a class="indexterm" name="id2686014"></a> 47To set the debug level, use the <a class="link" href="smb.conf.5.html#LOGLEVEL" target="_top">log level</a> in your 48<code class="filename">smb.conf</code>. You may also find it useful to set the log 49level higher for just one machine and keep separate logs for each machine. 50To do this, add the following lines to your main <code class="filename">smb.conf</code> file: 51</p><table class="simplelist" border="0" summary="Simple list"><tr><td><a class="indexterm" name="id2686054"></a><em class="parameter"><code>log level = 10</code></em></td></tr><tr><td><a class="indexterm" name="id2686066"></a><em class="parameter"><code>log file = /usr/local/samba/lib/log.%m</code></em></td></tr><tr><td><a class="indexterm" name="id2686077"></a><em class="parameter"><code>include = /usr/local/samba/lib/smb.conf.%m</code></em></td></tr></table><p> 52and create a file <code class="filename">/usr/local/samba/lib/smb.conf.<em class="replaceable"><code>machine</code></em></code> where 53<em class="replaceable"><code>machine</code></em> is the name of the client you wish to debug. In that file put any 54<code class="filename">smb.conf</code> commands you want; for example, <a class="link" href="smb.conf.5.html#LOGLEVEL" target="_top">log level</a> may be useful. This also allows 55you to experiment with different security systems, protocol levels, and so on, on just one machine. 56</p><p> 57The <code class="filename">smb.conf</code> entry <a class="link" href="smb.conf.5.html#LOGLEVEL" target="_top">log level</a> is synonymous with the parameter <a class="link" href="smb.conf.5.html#DEBUGLEVEL" target="_top">debuglevel</a> that has been used in older versions of Samba and is being retained for backward 58compatibility of <code class="filename">smb.conf</code> files. 59</p><p> 60As the <a class="link" href="smb.conf.5.html#LOGLEVEL" target="_top">log level</a> value is increased, you will record a significantly greater level of 61debugging information. For most debugging operations, you may not need a setting higher than 62<code class="constant">3</code>. Nearly all bugs can be tracked at a setting of <code class="constant">10</code>, but be 63prepared for a large volume of log data. 64</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2686191"></a>Debugging-Specific Operations</h3></div></div></div><p> 65<a class="indexterm" name="id2686199"></a> 66<a class="indexterm" name="id2686206"></a> 67<a class="indexterm" name="id2686213"></a> 68<a class="indexterm" name="id2686220"></a> 69 Samba-3.x permits debugging (logging) of specific functional components without unnecessarily 70 cluttering the log files with detailed logs for all operations. An example configuration to 71 achieve this is shown in: 72 </p><p> 73</p><table class="simplelist" border="0" summary="Simple list"><tr><td><a class="indexterm" name="id2686239"></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="id2686250"></a><em class="parameter"><code>max log size = 0</code></em></td></tr><tr><td><a class="indexterm" name="id2686262"></a><em class="parameter"><code>log file = /var/log/samba/%U.%m.log</code></em></td></tr></table><p> 74</p><p> 75 This will cause the level of detail to be expanded to the debug class (log level) passed to 76 each functional area per the value shown above. The first value passed to the <em class="parameter"><code>log level</code></em> 77 of <code class="constant">0</code> means turn off all unnecessary debugging except the debug classes set for 78 the functional areas as specified. The table shown in <a class="link" href="bugreport.html#dbgclass" title="Table�40.1.�Debuggable Functions">Debuggable Functions</a> 79 may be used to attain very precise analysis of each SMB operation Samba is conducting. 80 </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="id2686393"></a>Internal Errors</h2></div></div></div><p> 81If you get the message “<span class="quote"><span class="errorname">INTERNAL ERROR</span></span>” in your log files, 82it means that Samba got an unexpected signal while running. It is probably a 83segmentation fault and almost certainly means a bug in Samba (unless 84you have faulty hardware or system software). 85</p><p> 86If the message came from smbd, it will probably be accompanied by 87a message that details the last SMB message received by smbd. This 88information is often useful in tracking down the problem, so please 89include it in your bug report. 90</p><p> 91You should also detail how to reproduce the problem, if 92possible. Please make this reasonably detailed. 93</p><p> 94<a class="indexterm" name="id2686426"></a> 95You may also find that a core file appeared in a <code class="filename">corefiles</code> 96subdirectory of the directory where you keep your Samba log 97files. This file is the most useful tool for tracking down the bug. To 98use it, you do this: 99<a class="indexterm" name="id2686442"></a> 100<a class="indexterm" name="id2686448"></a> 101</p><pre class="screen"> 102<code class="prompt">$ </code><strong class="userinput"><code>gdb smbd core</code></strong> 103</pre><p> 104</p><p> 105<a class="indexterm" name="id2686474"></a> 106<a class="indexterm" name="id2686481"></a> 107adding appropriate paths to smbd and core so gdb can find them. If you 108do not have gdb, try <strong class="userinput"><code>dbx</code></strong>. Then within the debugger, 109use the command <code class="literal">where</code> to give a stack trace of where the 110problem occurred. Include this in your report. 111</p><p> 112<a class="indexterm" name="id2686506"></a> 113If you know any assembly language, do a <code class="literal">disass</code> of the routine 114where the problem occurred (if it's in a library routine, then 115disassemble the routine that called it) and try to work out exactly 116where the problem is by looking at the surrounding code. Even if you 117do not know assembly, including this information in the bug report can be 118useful. 119</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2686526"></a>Attaching to a Running Process</h2></div></div></div><p> 120<a class="indexterm" name="id2686535"></a> 121<a class="indexterm" name="id2686542"></a> 122<a class="indexterm" name="id2686548"></a> 123Unfortunately, some UNIXes (in particular some recent Linux kernels) 124refuse to dump a core file if the task has changed UID (which smbd 125does often). To debug with this sort of system, you could try to attach 126to the running process using 127<strong class="userinput"><code>gdb smbd <em class="replaceable"><code>PID</code></em></code></strong>, where you get 128<em class="replaceable"><code>PID</code></em> from <span class="application">smbstatus</span>. 129Then use <code class="literal">c</code> to continue and try to cause the core dump 130using the client. The debugger should catch the fault and tell you 131where it occurred. 132</p><p> 133Sometimes it is necessary to build Samba binary files that have debugging 134symbols so as to make it possible to capture enough information from a crashed 135operation to permit the Samba Team to fix the problem. 136</p><p> 137Compile with <code class="constant">-g</code> to ensure you have symbols in place. 138Add the following line to the <code class="filename">smb.conf</code> file global section: 139</p><pre class="screen"> 140panic action = "/bin/sleep 90000" 141</pre><p> 142to catch any panics. If <code class="literal">smbd</code> seems to be frozen, look for any sleep 143processes. If it is not, and appears to be spinning, find the PID 144of the spinning process and type: 145</p><pre class="screen"> 146<code class="prompt">root# </code> gdb /usr/local/samba/sbin/smbd 147</pre><p> 148<a class="indexterm" name="id2686634"></a> 149then “<span class="quote">attach `pid'</span>” (of the spinning process), then type “<span class="quote">bt</span>” to 150get a backtrace to see where the smbd is in the call path. 151</p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2686652"></a>Patches</h2></div></div></div><p> 152<a class="indexterm" name="id2686659"></a> 153<a class="indexterm" name="id2686666"></a> 154The best sort of bug report is one that includes a fix! If you send us 155patches, please use <strong class="userinput"><code>diff -u</code></strong> format if your version of 156diff supports it; otherwise, use <strong class="userinput"><code>diff -c4</code></strong>. Make sure 157you do the diff against a clean version of the source and let me know 158exactly what version you used. 159</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="tdb.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">�Chapter�41.�Managing TDB Files</td></tr></table></div></body></html> 160