Chen Shiyuan
2000-Dec-09 05:52 UTC
Fwd: Problem with DFREE COMMAND and SMBCLIENT on SAMBA-CVS 091200
Hello! I am currently trying out samba-2.2cvs updated on 091200 and noticed two problems, one with the dfree command parameter in the /etc/smb.conf file and the other with the smbclient program and is wondering if anyone can help me with it? DFREE COMMAND ============I have the following line in my /etc/smb.conf . dfree.pl is a working program that worked fine under 2.0.7 . I have also changed dfree.pl to just print out two numbers but the problem still presisted. dfree command = /usr/bin/dfree.pl When I used smbclient to connect to the share and do a dir, the following happens after the files and directories are listed out :- smb: \> dir <snip> Error in dskattr: code 0 smb: \> dir read_socket_with_timeout: timeout read. read error = Broken pipe. code 0 listing \* Broken pipe And in /var/log/samba/log.smb, the following is noted :- [2000/12/09 13:11:18, 0] lib/fault.c:fault_report(40) ==============================================================[2000/12/09 13:11:18, 0] lib/fault.c:fault_report(41) INTERNAL ERROR: Signal 11 in pid 19704 (2.2.0-alpha1) Please read the file BUGS.txt in the distribution [2000/12/09 13:11:18, 0] lib/fault.c:fault_report(43) ==============================================================[2000/12/09 13:11:18, 0] lib/util.c:smb_panic(1139) PANIC: internal error And if I use gdb on the above smbd process, I get the following :- server:# gdb smbd 20326 GNU gdb 19991004 Copyright 1998 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux"... /samba/docs/textdocs/20326: No such file or directory. Attaching to program: /usr/bin/smbd, Pid 20326 Reading symbols from /usr/lib/libreadline.so.3...done. Reading symbols from /lib/libdl.so.2...done. Reading symbols from /lib/libcrypt.so.1...done. Reading symbols from /lib/libnsl.so.1...done. Reading symbols from /lib/libpam.so.0...done. Reading symbols from /lib/libc.so.6...done. Reading symbols from /lib/libtermcap.so.2...done. Reading symbols from /lib/ld-linux.so.2...done. Reading symbols from /lib/libnss_files.so.2...done. Reading symbols from /lib/libnss_nisplus.so.2...done. Reading symbols from /lib/libnss_nis.so.2...done. Reading symbols from /lib/libnss_dns.so.2...done. Reading symbols from /lib/libresolv.so.2...done. Reading symbols from /lib/libnss_ldap.so.2...done. 0x2abe515e in __select () from /lib/libc.so.6 (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x80fd8a5 in file_lines_parse () (gdb) q SMBCLIENT ========It appears that when there is a /var/lock/samba/unexpected.tdb file, smbclient will segfault when it tries to connect to netbios names. If I specify dns lookupable names on the commandline, smbclient will work just fine. But the moment I use netbios names, it will segfault. The commandline used is :- smbclient -L \\\\<dns or netbios name> smbclient \\\\<dns or netbios name>\\homes -U<xyz> added interface ip=1.1.0.13 bcast=1.1.255.255 nmask=255.255.0.0 Got a positive name query response from 1.1.0.30 ( 1.1.0.30 ) Segmentation fault And strace of the running process gives the following information :- write(1, "Got a positive name query respon"..., 70) = 70 gettimeofday({976338763, 826163}, NULL) = 0 select(6, [4 5], NULL, NULL, {0, 90000}) = 0 (Timeout) stat("/var/lock/samba", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/var/lock/samba/unexpected.tdb", O_RDONLY) = 7 read(7, "TDB file\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 168) = 168 fstat(7, {st_mode=S_IFREG|0600, st_size=8192, ...}) = 0 old_mmap(NULL, 8192, PROT_READ, MAP_SHARED, 7, 0) = 0x2aac1000 lseek(7, 40, SEEK_SET) = 40 write(7, "\0\0\0\0", 4) = -1 EBADF (Bad file descriptor) --- SIGSEGV (Segmentation fault) --- +++ killed by SIGSEGV +++ But if I were to rm /var/lock/samba/unexpected.tdb , smbclient will work perfectly fine again. I compiled samba with the following parameters :- ./configure --prefix=/usr --libdir=/etc --with-lockdir=/var/lock/samba -- with-swatdir=/usr/share/swat --localstatedir=/var/log/samba --with- smbmount --with-pam Does anyone have idea what has gone wrong? Is it a misconfig on my end or is it a bug with the cvs version? Many thanks for your time.