[Samba] Help/Note: Bug in samba-2.2.5/msdfs

Gunther Hess ghess at elmos.de
Wed Aug 7 14:59:02 GMT 2002


Hi out there,
             we have detected a bug in Samba-2.2.5, full details
are in the attached files, but apparently the follwing snippet
is the most important part of it:


[common]
   comment              = Common Tree Rev 1.3
   path                 = /var/samba/common/%a
   msdfs root           = true
   read only            = no
   public               = no
   browseable           = yes
   create mode          = 0775
   force directory mode = 2770
   veto files           = /.hidden/
   invalid users        = root

If I use this share on a Windows-NT client (Service Pack 6) and try
to create a new directory, it fails, since the server process tries an

  mkdir <servername>/<sharename>/<path-to-newdir>

Removal of the parameter "msdfs root" and a Windows-NT-Reboot later,
the problem vanishes.

Win2k and WinXP behave o.k. Win95 too, but it's not msdfs-aware (At least not 
with this samba). Win98 shows the same Problems as NT and is msdfs aware.

The following files are attached:

configure.cmd      - The configure command used to compile on Solaris 8  
smb.conf-tom       - The main smb.conf
smb.conf.head      - A file included in smb.conf
strace.failure     - A truss output from another server named info, that
                     shows the failing actions

I have a workaround, thus i'm not in severe trouble, but the strace/truss
makes me quite unhappy, since it unveals a very odd behaviour of the 
Samba-Server.

Since I am looking forward to a holiday, please mailto:edv-techops at elmos.de
if you prefer mailing. (I am included in this list) Nevertheless the 
Mailing list is o.k. since my colleagues access it too.

Regards
Gunther
-- 
Dr. Gunther Hess           Elmos Semiconductor AG
Tel.: ++49 +231 7549-520   Heinrich Hertz Str. 1
Fax:  ++49 +231 7549-109   D-44227 Dortmund
WWW: http://www.elmos.de   Opinions are strictly of my own
-------------- next part --------------
 ./configure  --prefix=/opt/samba-2.2.5 --localstatedir=/var/samba \
--with-configdir=/var/samba/etc --with-automount --with-syslog \
--with-quotas --with-utmp --with-msdfs --with-acl-support \
--with-privatedir=/var/samba/private --with-piddir=/var/samba/locks

-------------- next part --------------
# info:/etc/smb.conf - Konfiguration eines Samba-Domain-Clients
# $Id: smb.conf-info,v 1.10 2002/08/07 14:44:46 root Exp $
#======================= Global Settings =====================================

[global]
   include              = /var/samba/etc/smb.conf.head
   interfaces           = 192.168.177.107/24
   netbios name         = tom
   log file             = /var/samba/tom/log/%M.%m
   lock directory       = /var/samba/tom/locks
   pid  directory       = /var/samba/tom/locks
   smb passwd file      = /var/samba/tom/private/smbpasswd

#============================ Share Definitions ==============================

; Ein Heimatverzeichnisdienst mit benutzerunabh?ngigen Namen

[homes]
   comment              = %u PC-Heimatverzeichnis
;  path                 = /pchome/%u
   browseable           = yes
   read only            = no
   create mask          = 0775
   force create mode    = 0660
   directory mask       = 0775
   force directory mode = 2770
   invalid users        = root

[tmp]
   comment              = Transient file space
   path                 = /var/tmp
   read only            = no
   public               = no
   browseable           = no
   create mode          = 0775
   force directory mode = 2770
   veto files           = /.hidden/
   invalid users        = root

[run]
   comment              = Variable Daten aus dem common-Tree
   path                 = /common/run
   read only            = no
   public               = no
   browseable           = no
   create mask          = 0775
   force create mode    = 0660
   directory mask       = 0775
   force directory mode = 2770
   invalid users        = root

[common]
   comment              = Common Tree Rev 1.3
;   path                 = /var/samba/common/%a
   path                 = /common
   msdfs root           = true
   read only            = no
   public               = no
   browseable           = yes
   create mode          = 0775
   force directory mode = 2770
   veto files           = /.hidden/
   invalid users        = root
-------------- next part --------------
# nfs3:/etc/smb.conf.head - Gemeinsamer teil der samba3-config
# $Id: smb.conf.head,v 1.6 2002/08/06 00:06:25 root Exp $
#======================= Global Settings =====================================

[global]
   workgroup            = hess
   max log size         = 2500
   socket options       = TCP_NODELAY
   keep alive           = 10
   log level            = 1
   syslog               = 1
   utmp                 = true
   utmp directory       = /var/adm

   time server          = yes

   host msdfs           = true

   bind interfaces only = true

   remote announce      = 192.168.177.103/hess 

   load printers        = false
   encrypt passwords    = Yes
   password server      = violine
   security             = server
   map to guest         = nobody

   os level             = 64
   local master         = yes
   domain master        = no
   preferred master     = yes
   wins server          = violine
   wins support         = no
   wins proxy           = no

   default case        = lower
   preserve case       = false
   short preserve case = false
   mangle case         = no
   case sensitive      = no

   oplocks             = false
-------------- next part --------------
    *** SUID: ruid/euid/suid = 0 / 0 / 16152  ***
    *** SGID: rgid/egid/sgid = 0 / 0 / 160  ***
poll(0xFFBEF3D0, 3, 60000)	(sleeping...)
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 b", 4)				= 4
read(12, "FF S M B\b\0\0\0\0180310".., 98)	= 98
getuid()					= 0 [0]
getgid()					= 0 [0]
setgroups(5, 0x00280338)			= 0
setregid(-1, 160)				= 0
getgid()					= 0 [160]
setreuid(-1, 16152)				= 0
getuid()					= 0 [16152]
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEDC88) Err#2 ENOENT
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles", 0xFFBEDC88) = 0
stat64("run/data/fracas/hs-handler/logfiles", 0xFFBEEF70) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70) Err#2 ENOENT
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70) Err#2 ENOENT
open64("run/data/fracas/hs-handler/logfiles", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE118)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 896
getdents64(25, 0x0029A5D0, 1048)		= 88
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEF080) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\b :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 b", 4)				= 4
read(12, "FF S M B10\0\0\0\0180310".., 98)	= 98
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEDC88) Err#2 ENOENT
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles", 0xFFBEDC88) = 0
stat64("run/data/fracas/hs-handler/logfiles", 0xFFBEEF70) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70) Err#2 ENOENT
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70) Err#2 ENOENT
open64("run/data/fracas/hs-handler/logfiles", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE118)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 896
getdents64(25, 0x0029A5D0, 1048)		= 88
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEF080) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B10 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 b", 4)				= 4
read(12, "FF S M B\b\0\0\0\0180310".., 98)	= 98
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEDC88) Err#2 ENOENT
lstat64("/var/samba/common/winnt/run/data/fracas/hs-handler/logfiles", 0xFFBEDC88) = 0
stat64("run/data/fracas/hs-handler/logfiles", 0xFFBEEF70) = 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70) Err#2 ENOENT
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEF70) Err#2 ENOENT
open64("run/data/fracas/hs-handler/logfiles", O_RDONLY|O_NDELAY) = 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE118)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 896
getdents64(25, 0x0029A5D0, 1048)		= 88
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
stat64("run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEF080) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\b 4\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 b", 4)				= 4
read(12, "FF S M B\0\0\0\0\0180310".., 98)	= 98
stat64("info", 0xFFBEEEF0)			= 0
stat64("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0)		Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY)		= 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE098)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 248
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
mkdir("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 5", 4)				= 4
read(12, "FF S M B\0\0\0\0\0180310".., 53)	= 53
stat64("info", 0xFFBEEEF0)			= 0
stat64("info/common/run", 0xFFBEEEF0)		Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0)		Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY)		= 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE098)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 248
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
mkdir("info/common/run", 02775)			Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 :", 4)				= 4
read(12, "FF S M B\0\0\0\0\0180310".., 58)	= 58
stat64("info", 0xFFBEEEF0)			= 0
stat64("info/common/run/data", 0xFFBEEEF0)	Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0)		Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY)		= 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE098)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 248
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
mkdir("info/common/run/data", 02775)		Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 A", 4)				= 4
read(12, "FF S M B\0\0\0\0\0180310".., 65)	= 65
stat64("info", 0xFFBEEEF0)			= 0
stat64("info/common/run/data/fracas", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0)		Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY)		= 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE098)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 248
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
mkdir("info/common/run/data/fracas", 02775)	Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 L", 4)				= 4
read(12, "FF S M B\0\0\0\0\0180310".., 76)	= 76
stat64("info", 0xFFBEEEF0)			= 0
stat64("info/common/run/data/fracas/hs-handler", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0)		Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY)		= 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE098)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 248
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
mkdir("info/common/run/data/fracas/hs-handler", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)			= 1
read(12, "\0\0\0 b", 4)				= 4
read(12, "FF S M B\0\0\0\0\0180310".., 98)	= 98
stat64("info", 0xFFBEEEF0)			= 0
stat64("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner", 0xFFBEEEF0) Err#2 ENOENT
stat64("info/common", 0xFFBEEEF0)		Err#2 ENOENT
open64("info", O_RDONLY|O_NDELAY)		= 25
fcntl(25, F_SETFD, 0x00000001)			= 0
fstat64(25, 0xFFBEE098)				= 0
getdents64(25, 0x0029A5D0, 1048)		= 248
getdents64(25, 0x0029A5D0, 1048)		= 0
close(25)					= 0
mkdir("info/common/run/data/fracas/hs-handler/logfiles/neuer ordner", 02775) Err#2 ENOENT
send(12, "\0\0\0 #FF S M B\0 :\0\0".., 39, 0)	= 39
poll(0xFFBEF3D0, 3, 60000)	(sleeping...)


More information about the samba mailing list