Package: samba
Version: 2:3.2.5-4lenny14
Severity: important

The folder contains 146 directories and 26461 files at the top level. When 
listing the folder contents only 4616 items are listed. 

My testing shows this happens with all Linux Samba client implementations I 
have access to:
  SMBClient under Ubuntu/10.04, Debian/Squeeze, Debian/Lenny, Debian/Etch
  GVFS Under Ubuntu/10.04

It happens from the server itself using the command line client. It does NOT 
happen with a Windows XP client.

Note that some information has been redacted as it contains names and member 
numbers of our customers.

What I found is that Linux Samba clients are reporting an error at some point 
due to a certain file:
  Error: Looping in FIND_NEXT as name xxxxx_gggggggg, Amy.pdf has already been 
seen?

Using the Samba command line client I see duplicate entry during listing of 
files:
...
  xxxxx_gggggggg, Amy.pdf                 396332  Fri Jun 17 11:44:35 2011
  xxxxx_gggggggg, Amy.pdf                 396332  Fri Jun 17 11:44:35 2011
...
The above two lines are the 4499th and 4500th in the list.

The only other copy of the file in that folder is in a subfolder:
# find . -name '*xxxxx*' -print0 |xargs -0 ls -l
-rw-rw-r-- 1 root    DomainUsers 396332 2011-06-17 11:44 ./xxxxx_gggggggg, 
Amy.pdf
-rw-rw-r-- 1 l.olson DomainUsers 396332 2010-07-02 18:01 ./X St. Co-op PDF 
Membership Disc 1/xxxxx_gggggggg, Amy.pdf

I verified that there are no binary characters in the file name. 
If I remove the file the problem ceases. 
If I replace it with an empty but identically named file the error happens. 
The error does not happen if I alter the file name with prefixes or suffixes. 
I can prevent the problem from happening by creating an additonal file named: 
"xxxxx_gggggggg, AmyA.pdf". Note the "A" added to the name. Creating 
"xxxxx_gggggggg\,\ AmyZ.pdf" did nothing.
If I create another folder with 27,000 files(named 1 though 27000)  and 200 
folders(named d1 though d200) and list its contents the problem does not 
happen. If I create an additional file in that folder named "xxxxx_gggggggg, 
Amy.pdf" the problem does not happen.

I created the identical directory structure as the problematic folder with the 
exception that all the files are empty. The command line client fails in an 
identical way, on the same file. I continued to test on this directory because 
it was not production data. 
If I move some directories away the problem ceases. Removing one directory with 
65 files in it caused the problem to stop. Removing only the files in that 
directory did nothing. Removing some other directories does nothing. Whether a 
directory has this effect does not seem to depend on whether it is before or 
after the duplicate entries.
As far as I can tell it has to do with the size of data being sent rather than 
the count of files or folders. I can remove the first entry returned from the 
'dir' command and the error does not happen the next time. If only the 8th item 
is removed the error does happen. 

I copied the test folder to another Lenny server with the same Samba version 
but a different smb.conf config. I was *NOT* able to reproduce the problem 
there.

Other notes:
  Samba shares are on an ext3 file system.
  The server where the problem happens is a production server so there are 
limits to the kind of testing I can do.

I am willing to send the following information but not publicly becase the 
filenames themselves contain names and membership numbers of our customers:
  tcpdump capture of communications with server
  tarball of the directory(with empty files)
  debug log(-d10) from smbclient
  debug log from server(please let me know what how you want this collected)
  

-- System Information:
Debian Release: 5.0.8
  APT prefers oldstable
  APT policy: (500, 'oldstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages samba depends on:
ii  adduser         3.110                    add and remove users and groups
ii  debconf [debcon 1.5.24                   Debian configuration management sy
ii  libacl1         2.2.47-2                 Access control list shared library
ii  libattr1        1:2.4.43-2               Extended attribute shared library
ii  libc6           2.7-18lenny7             GNU C Library: Shared libraries
ii  libcomerr2      1.41.3-1                 common error description library
ii  libcups2        1.3.8-1+lenny9           Common UNIX Printing System(tm) - 
ii  libgnutls26     2.4.2-6+lenny2           the GNU TLS library - runtime libr
ii  libkrb53        1.6.dfsg.4~beta1-5lenny6 MIT Kerberos runtime libraries
ii  libldap-2.4-2   2.4.11-1+lenny2          OpenLDAP libraries
ii  libpam-modules  1.0.1-5+lenny1           Pluggable Authentication Modules f
ii  libpam-runtime  1.0.1-5+lenny1           Runtime support for the PAM librar
ii  libpam0g        1.0.1-5+lenny1           Pluggable Authentication Modules l
ii  libpopt0        1.14-4                   lib for parsing cmdline parameters
ii  libtalloc1      1.2.0~git20080616-1      hierarchical pool based memory all
ii  libwbclient0    2:3.2.5-4lenny14         client library for interfacing wit
ii  logrotate       3.7.1-5                  Log rotation utility
ii  lsb-base        3.2-20                   Linux Standard Base 3.2 init scrip
ii  procps          1:3.2.7-11               /proc file system utilities
ii  samba-common    2:3.2.5-4lenny14         Samba common files used by both th
ii  update-inetd    4.31                     inetd configuration file updater
ii  zlib1g          1:1.2.3.3.dfsg-12        compression library - runtime

samba recommends no packages.

Versions of packages samba suggests:
pn  ldb-tools                     <none>     (no description available)
pn  openbsd-inetd | inet-superser <none>     (no description available)
ii  smbldap-tools                 0.9.4-1    Scripts to manage Unix and Samba a

-- debconf information:
  samba/run_mode: daemons
  samba/generate_smbpasswd: true

*** /tmp/smb.conf
[global]

workgroup = PDC

netbios name = Xstreet

netbios aliases = genie essvr
server string = 'East-side file server'

wins support = yes
wins proxy = no
dns proxy = yes
name resolve order = wins lmhosts host  bcast

interfaces = lo 10.1.1.20/24

bind interfaces only = yes

log file = /var/log/samba/pdclog.%m
log level = 1
max log size = 1000
syslog only = no
syslog = 0
panic action = /usr/share/samba/panic-action %d


socket options = TCP_NODELAY SO_RCVBUF=32768 SO_SNDBUF=32768

domain master = yes
local master = yes
os level = 64
preferred master = yes

security = user
encrypt passwords = true

passdb backend = ldapsam:ldap://localhost/
ldap suffix = dc=xstreet,dc=coop
ldap machine suffix = ou=Computers
ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap admin dn = cn=admin,dc=xstreet,dc=coop
ldap passwd sync = yes
ldap delete dn = yes 

add machine script = /usr/sbin/smbldap-useradd -w %u

obey pam restrictions = yes


domain logons = yes

;user profiles and home directory
; %a gives per architcture profiles for users 
logon home = \\%L\%U\.%a-profile
logon drive = H:
logon path = \\%L\profiles\%U-%a
logon script = logon.bat
logon script = %U-logon.bat


load printers = no


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

[homes]
comment = Home Directories
browseable = no
writeable = yes
path = /faserv/homes/%U
hide files = /desktop.ini/ntuser.ini/NTUSER.*/


[netlogon]
path = /faserv/netlogon
read only = yes
write list = @DomainAdmins
browseable = no
force create mode = 775
force directory mode = 775
public = no
guest ok = yes
browseable = yes
locking = no
root preexec = /faserv/netlogon/logon.pl /faserv/netlogon/ %U
comment = Network Logon Service

[profiles]
comment = Users profiles
path = /faserv/profiles
guest ok = no
writeable = yes
browseable = no
create mask = 0600
directory mask = 0700
profile acls = yes
csc policy = disable
hide files = 
/desktop.ini/ntuser.ini/NTUSER.*/.*/DesktopFolderDB/TrashFor%m/resource.frk/

[allusers]
browseable = no
path = /faserv/homes
read only = No
valid users = administrator



###########################
# General shares
###########################

[sysadmin]
        comment = IT Stuff
        path = /shares/sysadmin
        read only = No
        valid users = @sysadmin Administrator
        force group = +sysadmin
        force create mode = 0660
        force directory mode = 0770

[it]
        comment = IT Cruft
        path = /shares/it
        read only = No
        valid users = @it Administrator copier
        force group = +it
        force create mode = 0660
  force directory mode = 0770


[genie]
        path = /shares/genie
        valid users = @DomainUsers
        read only = No
        create mask = 0664
        force create mode = 0664
        directory mask = 0775
        force directory mode = 0775
        
[marketing]
        path = /shares/genie_marketing/
        valid users = @DomainUsers Administrator
        read only = Yes
        write list = @communications Administrator
        force group = +communications
        force create mode = 0664
        force directory mode = 0775

[Art]
        path = /shares/art
        read only = yes
        valid users = @DomainUsers Administrator @it
        write list = @communications Administrator @it
        force group = communications
        force create mode = 0664
        force directory mode = 0775
        
[hr]
        path = /shares/hr/
        valid users = @humanResources Administrator copier
        read only = no
        force group = humanResources
        force create mode = 0660
        force directory mode = 0770

[benefits]
        path = /shares/benefits/
        valid users = @humanResources Administrator
        read only = no
        force group = humanResources
        force create mode = 0660
        force directory mode = 0770

[ALL-shiftreports]
  path = /shares/shiftreports
  valid users = Administrator @managers @mgrHR @mgrGeneral @mgrES @mgrWS
  read only = No
  force group = root
  force user = root
  force create mode = 0660
  force directory mode = 0770
[ES-shiftreports]
  path = /shares/shiftreports/ES
  valid users = Administrator @asstmgrDeliES @asstmgrGenMerchES 
@asstmgrGroceryES @asstmgrProduceES @managers @mgrDeliES @mgrFE-ES @mgrGeneral 
@mgrGenMerchES @mgrGroceryES @mgrHR @mgrKitchen @mgrOD-ES @mgrProduceES
  copy = ALL-shiftreports
[WS-shiftreports]
  path = /shares/shiftreports/WS
  valid users = Administrator @asstmgrDeliWS @asstmgrGenMerchWS 
@asstmgrGroceryWS @asstmgrProduceWS @managers @mgrDeliWS @mgrFE-WS @mgrGeneral 
@mgrGenMerchWS @mgrGroceryWS @mgrHR @mgrKitchen @mgrOD-WS @mgrProduceWS
  copy = ALL-shiftreports


[applicants]
        path = /shares/applicants
        valid users = Administrator @managers @mgrAllGMT @mgrAllProd 
@mgrAllNonProd
        read only = No
        force group = root
  force user = root
  force create mode = 0660
  force directory mode = 0770

######################
# Evals shares
######################

#
# ES Store
# 

[ES-FE-evals]
        path = /shares/evals/ES/Front-End
        valid users = @mgrES @mgrFE-ES @humanResources Administrator
        read only = No
        security mask = 0770
        directory security mask = 0770
        force group = DomainUsers
        force user = root
        force create mode = 0660   
        force directory mode = 0770
[ES-Deli-evals]
        path = /shares/evals/ES/Deli
        valid users = @mgrDeliES @asstmgrDeliES @humanResources Administrator 
@mgrES
        copy = ES-FE-evals
[ES-Produce-evals]
        path = /shares/evals/ES/Produce
        valid users = @mgrProduceES @asstmgrProduceES @humanResources 
Administrator @mgrES
        copy = ES-FE-evals
[ES-Grocery-evals]
        path = /shares/evals/ES/Grocery
        valid users = @mgrGroceryES @asstmgrGroceryES @humanResources 
Administrator @mgrES
        copy = ES-FE-evals
[ES-GenMerch-evals]
        path = /shares/evals/ES/GenMerch
        valid users = @mgrGenMerchES @asstmgrGenMerchES @humanResources 
Administrator @mgrES
        copy = ES-FE-evals
[ES-evals]
        path = /shares/evals/ES
        valid users = Administrator @humanResources @mgrES @mgrGeneral
        copy = ES-FE-evals


#
# Ws Store
#

[WS-FE-evals]
        path = /shares/evals/WS/Front-End
        valid users = @mgrFE-WS @humanResources Administrator 
        copy = ES-FE-evals
[WS-Deli-evals]
        path = /shares/evals/WS/Deli
        valid users = @mgrDeliWS @humanResources Administrator @mgrWS 
        copy = ES-FE-evals
[WS-Meat-evals]
        path = /shares/evals/WS/Meat
        valid users = @mgrMeatWS @humanResources Administrator @mgrWS 
        copy = ES-FE-evals
[WS-Produce-evals]
        path = /shares/evals/WS/Produce
        valid users = @mgrProduceWS @asstmgrProduceWS @humanResources 
Administrator @mgrWS 
        copy = ES-FE-evals
[WS-Grocery-evals]
        path = /shares/evals/WS/Grocery
        valid users = @mgrGroceryWS @asstmgrGroceryWS @humanResources 
Administrator @mgrWS 
        copy = ES-FE-evals
[WS-GenMerch-evals]
        path = /shares/evals/WS/GenMerch
        valid users = @mgrGenMerchWS @asstmgrGenMerchWS @humanResources 
Administrator @mgrWS 
        copy = ES-FE-evals
[WS-evals]
        path = /shares/evals/WS
        valid users = Administrator @humanResources @mgrWS 
        copy = ES-FE-evals


#
# Admin
#

[FoG-evals]
        path = /shares/evals/FoG
        valid users = Administrator @humanResources @mgrFOG @mgrPurchasing 
@coordFOG
        copy = ES-FE-evals
[Communications-evals]
        path = /shares/evals/Communications
        valid users = Administrator @humanResources @mgrCom @mgrGeneral
        copy = ES-FE-evals
[CoopServ-evals]
  path=/shares/evals/CoopServ
  valid users = Administrator @humanResources @mgrCoopServ @mgrGeneral
  copy = ES-FE-evals
[HR-evals]
        path = /shares/evals/HR
        valid users = Administrator @mgrGeneral @mgrHR
        copy = ES-FE-evals
[Finance-evals]
        path = /shares/evals/Finance
        valid users = Administrator @humanResources @mgrGeneral @mgrFinance
        copy = ES-FE-evals
[IT-evals]
        path = /shares/evals/IT
        valid users = Administrator @humanResources @mgrIT @mgrGeneral
        copy = ES-FE-evals
[GMT-evals]
        path = /shares/evals/GMT
        valid users = Administrator @humanResources @mgrGeneral
        copy = ES-FE-evals
[Operations-evals]
        path = /shares/evals/Operations
        valid users = @mgrOperations @humanResources @mgrGeneral Administrator
        copy = ES-FE-evals
[Maintenance-evals]
        path = /shares/evals/Operations/Maintenance
        valid users = Administrator @humanResources @maintCoord @mgrOperations 
@mgrGeneral
        copy = ES-FE-evals

#
# OSK
#

[OSK-evals]
        path = /shares/evals/OSK
        valid users = Administrator @humanResources @mgrGeneral @mgrKitchen
        copy = ES-FE-evals
[Catering-evals]
        path = /shares/evals/OSK/Catering
        valid users = Administrator @humanResources @mgrCatering @mgrKitchen 
@mgrGeneral
        copy = ES-FE-evals
[OSK-kitchen-evals]
        path = /shares/evals/OSK/Kitchen
        valid users = Administrator @humanResources @SousChef @mgrKitchen 
@mgrGeneral
        copy = ES-FE-evals
[OSK-bakery-evals]
        path = /shares/evals/OSK/Bakery
        valid users = Administrator @humanResources @coordBakery @mgrKitchen 
@mgrGeneral
        copy = ES-FE-evals
[OSK-FOG-evals]
  path = /shares/evals/OSK/FOG/
        valid users = Administrator @humanResources @coordFOGOSK @mgrKitchen 
@mgrGeneral
        copy = ES-FE-evals

#
#Top level for HR and GM
# 

[evals]
        path = /shares/evals
        valid users = Administrator @mgrHR @mgrGeneral
        browseable = no
        copy = ES-FE-evals

        
######################
# Utility shares
######################
[scaleupdates]
        path = /shares/scaleupdates
        read only = No
        valid users = @DomainUsers @automator
        force create mode = 0660
        force directory mode = 0770
[iclupdates]
        path = /shares/iclupdates
        read only = No
        valid users = @DomainUsers @automator
        force group = DomainUsers
        force create mode = 0660
        force directory mode = 0770

[drops]
        path = /shares/drops
        valid users = @DomainUsers @automator
        read only = No
        force group = DomainUsers
        force user = root
  force create mode = 0660
  force directory mode = 0770
  browseable = no

[onetime]
        path = /faserv/jobs/onetime
        valid users = @automator @it
        read only = No
        force group = DomainUsers
        force user = root
  force create mode = 0660
  force directory mode = 0770
  browseable = no

##################
# Temporary shares
##################
[staffphotos]
  path = "/shares/hr/Staff Photos"
  valid users = @communications @it
  read only = yes
  force group = root
  force user = root
  force create mode = 0660
  force directory mode = 0770
  browseable = no



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to