Initial import
[samba] / docs / htmldocs / Samba3-HOWTO / bugreport.html
1 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter 39. Reporting Bugs</title><link rel="stylesheet" href="samba.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><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 38. 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 39. 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 39. 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">&lt;<a href="mailto:jht@samba.org">jht@samba.org</a>&gt;</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">&lt;<a href="mailto:jelmer@samba.org">jelmer@samba.org</a>&gt;</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">&lt;<a href="mailto:tridge@samba.org">tridge@samba.org</a>&gt;</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#id2652358">Introduction</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id2652448">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#id2652667">Debugging-Specific Operations</a></span></dt></dl></dd><dt><span class="sect1"><a href="bugreport.html#id2652873">Internal Errors</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id2653006">Attaching to a Running Process</a></span></dt><dt><span class="sect1"><a href="bugreport.html#id2653131">Patches</a></span></dt></dl></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2652358"></a>Introduction</h2></div></div></div><p>
2 <a class="indexterm" name="id2652366"></a>
3 <a class="indexterm" name="id2652373"></a>
4 Please report bugs using Samba's <a href="https://bugzilla.samba.org/" target="_top">Bugzilla</a> facilities and take
5 the time to read this file before you submit a bug report. Also, check to see if it has changed between
6 releases, as we may be changing the bug reporting mechanism at some point.
7 </p><p>
8 Please do as much as you can yourself to help track down the
9 bug. Samba is maintained by a dedicated group of people who volunteer
10 their time, skills, and efforts. We receive far more mail than
11 we can possibly answer, so you have a much higher chance of a response
12 and a fix if you send us a &#8220;<span class="quote">developer-friendly</span>&#8221; bug report that lets
13 us fix it fast. 
14 </p><p>
15 <a class="indexterm" name="id2652406"></a>
16 <a class="indexterm" name="id2652412"></a>
17 <a class="indexterm" name="id2652419"></a>
18 If you post the bug to the comp.protocols.smb
19 newsgroup or the mailing list, do not assume that we will read it. If you suspect that your 
20 problem is not a bug but a configuration problem, it is better to send 
21 it to the Samba mailing list, as there are thousands of other users on
22 that list who may be able to help you.
23 </p><p>
24 You may also like to look though the recent mailing list archives,
25 which are conveniently accessible on the Samba Web pages
26 at <a 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="id2652448"></a>General Information</h2></div></div></div><p>
28 Before submitting a bug report, check your config for silly
29 errors. Look in your log files for obvious messages that tell
30 you've misconfigured something. Run testparm to check your config
31 file for correct syntax.
32 </p><p>
33 Have you looked through <a href="diagnosis.html" title="Chapter 37. The Samba Checklist">The Samba Checklist</a>? This is extremely important.
34 </p><p>
35 If you include part of a log file with your bug report, then be sure to
36 annotate it with exactly what you were doing on the client at the
37 time 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>
39 If the bug has anything to do with Samba behaving incorrectly as a
40 server (like refusing to open a file), then the log files will probably
41 be quite useful. Depending on the problem, a log level of between 3 and
42 10 showing the problem may be appropriate. A higher level gives more
43 detail but may use too much disk space.
44 </p><p>
45 <a class="indexterm" name="id2652499"></a>
46 <a class="indexterm" name="id2652506"></a>
47 To set the debug level, use the <a class="indexterm" name="id2652513"></a>log level in your 
48 <code class="filename">smb.conf</code>. You may also find it useful to set the log 
49 level higher for just one machine and keep separate logs for each machine. 
50 To 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="id2652542"></a><em class="parameter"><code>log level = 10</code></em></td></tr><tr><td><a class="indexterm" name="id2652554"></a><em class="parameter"><code>log file = /usr/local/samba/lib/log.%m</code></em></td></tr><tr><td><a class="indexterm" name="id2652567"></a><em class="parameter"><code>include = /usr/local/samba/lib/smb.conf.%m</code></em></td></tr></table><p>
52 and 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="indexterm" name="id2652603"></a>log level may be useful. This also allows
55 you to experiment with different security systems, protocol levels, and so on, on just one machine.
56 </p><p>
57 The <code class="filename">smb.conf</code> entry <a class="indexterm" name="id2652622"></a>log level is synonymous with the parameter <a class="indexterm" name="id2652629"></a>debuglevel that has been used in older versions of Samba and is being retained for backward
58 compatibility of <code class="filename">smb.conf</code> files.
59 </p><p>
60 As the <a class="indexterm" name="id2652648"></a>log level value is increased, you will record a significantly greater level of
61 debugging 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
63 prepared for a large volume of log data.
64 </p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2652667"></a>Debugging-Specific Operations</h3></div></div></div><p>
65 <a class="indexterm" name="id2652675"></a>
66 <a class="indexterm" name="id2652682"></a>
67 <a class="indexterm" name="id2652688"></a>
68 <a class="indexterm" name="id2652696"></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="id2652715"></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="id2652728"></a><em class="parameter"><code>max log size = 0</code></em></td></tr><tr><td><a class="indexterm" name="id2652741"></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 href="bugreport.html#dbgclass" title="Table 39.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 39.1. Debuggable Functions</b></p><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></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2652873"></a>Internal Errors</h2></div></div></div><p>
81 If you get the message &#8220;<span class="quote"><span class="errorname">INTERNAL ERROR</span></span>&#8221; in your log files, 
82 it means that Samba got an unexpected signal while running. It is probably a
83 segmentation fault and almost certainly means a bug in Samba (unless
84 you have faulty hardware or system software).
85 </p><p>
86 If the message came from smbd, it will probably be accompanied by
87 a message that details the last SMB message received by smbd. This
88 information is often useful in tracking down the problem, so please
89 include it in your bug report.
90 </p><p>
91 You should also detail how to reproduce the problem, if
92 possible. Please make this reasonably detailed.
93 </p><p>
94 <a class="indexterm" name="id2652905"></a>
95 You may also find that a core file appeared in a <code class="filename">corefiles</code>
96 subdirectory of the directory where you keep your Samba log
97 files. This file is the most useful tool for tracking down the bug. To
98 use it, you do this:
99 <a class="indexterm" name="id2652921"></a>
100 <a class="indexterm" name="id2652928"></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="id2652954"></a>
106 <a class="indexterm" name="id2652960"></a>
107 adding appropriate paths to smbd and core so gdb can find them. If you
108 do not have gdb, try <strong class="userinput"><code>dbx</code></strong>. Then within the debugger,
109 use the command <span><strong class="command">where</strong></span> to give a stack trace of where the
110 problem occurred. Include this in your report.
111 </p><p>
112 <a class="indexterm" name="id2652985"></a>
113 If you know any assembly language, do a <span><strong class="command">disass</strong></span> of the routine
114 where the problem occurred (if it's in a library routine, then
115 disassemble the routine that called it) and try to work out exactly
116 where the problem is by looking at the surrounding code. Even if you
117 do not know assembly, including this information in the bug report can be
118 useful. 
119 </p></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="id2653006"></a>Attaching to a Running Process</h2></div></div></div><p>
120 <a class="indexterm" name="id2653014"></a>
121 <a class="indexterm" name="id2653021"></a>
122 <a class="indexterm" name="id2653027"></a>
123 Unfortunately, some UNIXes (in particular some recent Linux kernels)
124 refuse to dump a core file if the task has changed UID (which smbd
125 does often). To debug with this sort of system, you could try to attach
126 to 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>.
129 Then use <span><strong class="command">c</strong></span> to continue and try to cause the core dump
130 using the client. The debugger should catch the fault and tell you
131 where it occurred.
132 </p><p>
133 Sometimes it is necessary to build Samba binary files that have debugging
134 symbols so as to make it possible to capture enough information from a crashed
135 operation to permit the Samba Team to fix the problem.
136 </p><p>
137 Compile with <code class="constant">-g</code> to ensure you have symbols in place. 
138 Add the following line to the <code class="filename">smb.conf</code> file global section:
139 </p><pre class="screen">
140 panic action = "/bin/sleep 90000"
141 </pre><p>
142 to catch any panics. If <span><strong class="command">smbd</strong></span> seems to be frozen, look for any sleep
143 processes. If it is not, and appears to be spinning, find the PID
144 of 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="id2653112"></a>
149 then &#8220;<span class="quote">attach `pid'</span>&#8221; (of the spinning process), then type &#8220;<span class="quote">bt</span>&#8221; to
150 get 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="id2653131"></a>Patches</h2></div></div></div><p>
152 <a class="indexterm" name="id2653138"></a>
153 <a class="indexterm" name="id2653145"></a>
154 The best sort of bug report is one that includes a fix! If you send us
155 patches, please use <strong class="userinput"><code>diff -u</code></strong> format if your version of 
156 diff supports it; otherwise, use <strong class="userinput"><code>diff -c4</code></strong>. Make sure 
157 you do the diff against a clean version of the source and let me know 
158 exactly 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="Appendix.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 38. 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>