openSUSE:Bugreport Samba

跳转到:导航搜索


本文档介绍如何提交关于 Samba 的错误报告。

Samba 错误报告和高级调试信息

如果您在使用这些或包含在 SUSE Linux 产品中的软件包时遇到任何问题,请不要责怪 Samba 团队。首先检查 Samba 故障排除页面。如果这没有帮助,请向 Samba Bugzilla 提交错误报告,选择产品 Samba 您的版本,然后选择“组件”Packaging,并将“分配给”设置为 samba-maintainers at suse dot de。或者使用 Novell Bugzilla,并使用相同的地址分配错误。

提供文件作为附件

提供来自/var/log/samba/目录和来自/var/lib/samba的 tdb 文件,以及配置文件/etc/samba/smb.conf。发布'rpm -qi samba''rpm -qi samba-<子包>'的输出。我们需要这些信息来重建发生的事情。

如果 winbind 是问题的一部分,请提供 /etc/security/pam_winbind.conf,如果您已在 pam_winbind.conf 中启用调试,则 /var/log/messages 也需要。

关于不同 Samba 组件的更详细描述可以在本节下方找到。

测试守护进程 (winbind, smb, nmb)

1. 停止所有正在运行的 Samba 进程 (winbind, smb, nmb)

2. 删除/var/log/samba/

中的所有日志文件。通过这种方法,我们可以确保在日志文件中拥有测试的起始日期。

3. 编辑/etc/samba/smb.conf并在[general]部分中设置以下变量

     debug level = 10
     debug pid = Yes
     max log size = 0
配置全局smb.conf调试级别
     smbcontrol <damon_name> debug 10
之外,也可以使用
在运行时将特定 Samba 守护进程的调试级别提高到 10。
     debug = yes
如果 winbind 是场景的一部分,请设置

/etc/security/pam_winbind.conf

4. 再次启动进程 (winbind, smb, nmb)date5. 重现错误并记下您开始任何测试的时间。如果测试时发生问题,请记下时间(使用

在您执行测试的系统上获取与日志文件匹配的时间)。/var/log/samba/将日志文件从tdb/var/lib/samba/附加到错误报告。如果可能,请删除 tdb 文件并提供干净的文件。因此,最好将它们绑定到一个压缩tar存档。相关的/var/log/messages部分也可能很有趣。

测试 pam_winbind

如果您在使用 pam_winbind 时遇到问题,请在如果 winbind 是场景的一部分,请设置中启用调试。将以下行添加到文件

 debug = yes

winbind pam 模块会将所有内容记录到/var/log/messages.

测试客户端工具 (net, smbclient 等)

客户端工具不会将日志记录到/var/log/samba/中的日志文件,这些工具会将日志记录到 stderr,您必须通过命令行启用调试输出。如果您想要使用net命令加入域,您必须执行以下操作

 net -d 10 ads join -U Administrator%secret

如果您在使用客户端工具时遇到问题,提供网络跟踪会有所帮助(请参阅下文)。

跟踪

网络跟踪

使用 tcpdump 创建网络跟踪时,请确保使用此命令

  tcpdump -i INTERFACE -s 0 -w /tmp/tracefile

将 INTERFACE 替换为您的网络接口。此外,请解释网络跟踪中涉及的机器的角色(谁是客户端,谁是服务器,它们的 IP 地址是什么等)。任何与硬件相关的信息通常没有意义。

回溯

如果您在 /var/log/messages 中看到 panic 消息,可以通过执行以下说明生成 GNU 调试器 (gdb) 回溯

  • 安装 gdb
  • 安装 samba-debuginfosamba-doc
  • 使回溯脚本可执行:chmod +x /usr/share/doc/packages/samba/examples/scripts/debugging/linux/backtrace
  • 将此行添加到 Samba 配置文件 /etc/samba/smb.conf 的全局部分
 panic action = /usr/share/doc/packages/samba/examples/scripts/debugging/linux/backtrace %d

当您重现产生 panic 的情况时,回溯将被写入/var/log/samba目录。

读取 Samba 日志

以下 grep 命令很有用

 grep -R -n -B2 -i "failed" $@
 grep -R -n -B2 "timeout [0-9]* seconds" $@


调试 cifs vfs 客户端

通常使用 cifs vfs 内核模块 cifs.ko 来挂载 Windows 和 Samba 服务器,并从这些挂载点运行要求高的应用程序。

如果您怀疑 cifs vfs 客户端存在问题,请提供以下调试信息

  • `cat /proc/fs/cifs/DebugData' 和 `uname -r' 命令的输出
  • cifs 数据包的网络捕获
   #tcpdump -s0 -w cifs-debug.cap 'port 137 || 138 || 139 || 445'
  • 如果您在挂载/卸载或执行文件操作期间遇到系统冻结,请附加 `sysrq + t' 输出。为此,您需要启用 Magic Sysrq 键。请参阅 https://en.opensuse.net.cn/Bugs/Kernel#Using_sysrq 以启用 sysrq 并使用它。
  • dmesg 或 syslog (/var/log/messages) 将显示某些严重错误,但启用额外的 cifs 调试标志以增加调试输出。您可以通过执行以下操作来执行此操作
   #dmesg -c /* this clears kernel ring buffer */
   #echo 3 > /proc/fs/cifs/cifsFYI /* Enables additional debugging */
   <do the operation>
   #echo 0 > /proc/fs/cifs/cifsFYI /* Disables additional debugging */
   #dmesg > cifs-debug.txt
   Attach cifs-debug.txt
  • 如果您遇到挂载/卸载问题,请提供以下信息
   - Output of `mount' command and/or `cat /etc/mtab'
   - mount -vV (gives version)
   - If mount fails, attach strace output taken during mount operation

另请参阅 LinuxCIFS 故障排除

对 cifs-utils 和 samba 包的贡献

我们欢迎对 cifs-utils 和 samba 包的贡献。对包的更改必须通过 Open Build Service (OBS) 提交。

提交更改时需要注意的事项

  • 请坚持 cifs-utils/samba changelog 消息格式,因为这对于向我们的用户提供一致的更改日志非常重要。推荐的方法是使用“osc vc”编辑 cifs-utils.changes 文件。消息通常采用以下形式
 - Short changelog; (bnc#<bugid>) or (bso#<bugid>).

例如:

 - Fix processing of open modes in POSIX open; (bnc#530683).

有关更多示例,请查看 cifs-utils.changes 或 samba.changes 文件。