[Samba] Strange problem with MS Office while saving
Gionatan Danti
g.danti at assyoma.it
Fri Oct 30 08:42:09 UTC 2015
Hi all,
anyone with some ideas?
Thanks.
On 28/10/15 19:18, Gionatan Danti wrote:
> Hi all,
> I sometime have a strange behavior when using MS Office and saving files.
>
> First things first:
> - OS CentOS 6.7 x86_64
> - SAMBA version 3.6.23, configured as member server (see [1] for full
> configuration)
> - inotifywait watching my shares to replicate them off-site
> - about 100 W7/W8 clients with MS Office 2010
>
> Using inotifywait, I tracked how MS Office file save function works.
> Basically, when clicking on the "diskette" icon, Office do the following
> thing:
> - create a temporary file with the new content (AAAAAAAA.tmp)
> - rename the original file (text.xls) to a new temporary name
> (BBBBBBBB.tmp)
> - rename the first temporary file (AAAAAAAA.tmp) to the original
> filename (test.xls)
> - delete the second temporary file (BBBBBBBB.tmp)
>
> The above renaming valzer works flawlessy 99.9% of times, but sometime
> it "hang" at point n.3 - renaming the first temporary file to the
> original filename. Using inotifywait, I see something similar:
> - create a temporary file with the new content (AAAAAAAA.tmp)
> - rename the original file (text.xls) to a new temporary name
> (BBBBBBBB.tmp)
> - <nothing>
> - delete the second temporary file (BBBBBBBB.tmp)
>
> The net results is that the user "lose" a file, because it can't see any
> file with the original filename and the on-disk temporary file tell it
> nothing (its name being randomly generated).
>
> Knowing that the inotify stack can lose events, I enabled samba log and
> searched for something related. Sadly, samba logs perfectly mirror what
> inotifywait shown: the first temporary file rename is never executed
> (nor it reached the samba server).
>
> Any ideas on what is happening here?
> I searched the list, but found nothing related.
>
> Thanks.
>
> [1] testparm -vvv output:
> Load smb config files from /etc/samba/smb.conf
> rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
> Processing section "[DATI]"
> Processing section "[EDP]"
> Processing section "[UTILITY]"
> Processing section "[ARCHIVE]"
> Loaded services file OK.
> Server role: ROLE_DOMAIN_MEMBER
> Press enter to see a dump of your service definitions
>
> [global]
> dos charset = CP850
> unix charset = UTF-8
> display charset = LOCALE
> workgroup = EXAMPLE
> realm = EXAMPLE
> netbios name = FSX
> netbios aliases =
> netbios scope =
> server string = Samba Server Version %v
> interfaces =
> bind interfaces only = No
> security = ADS
> auth methods =
> encrypt passwords = Yes
> client schannel = Auto
> server schannel = Auto
> allow trusted domains = Yes
> map to guest = Never
> null passwords = No
> obey pam restrictions = No
> password server = *
> smb passwd file = /var/lib/samba/private/smbpasswd
> private dir = /var/lib/samba/private
> passdb backend = tdbsam
> algorithmic rid base = 1000
> root directory =
> guest account = nobody
> enable privileges = Yes
> pam password change = No
> passwd program =
> passwd chat = *new*password* %n\n *new*password* %n\n *changed*
> passwd chat debug = No
> passwd chat timeout = 2
> check password script =
> username map =
> password level = 0
> username level = 0
> unix password sync = No
> restrict anonymous = 0
> lanman auth = No
> ntlm auth = Yes
> client NTLMv2 auth = Yes
> client lanman auth = No
> client plaintext auth = No
> client use spnego principal = No
> send spnego principal = No
> preload modules =
> dedicated keytab file =
> kerberos method = secrets and keytab
> map untrusted to domain = No
> log level = 2
> syslog = 1
> syslog only = No
> log file = /var/log/samba/log.%m
> max log size = 5000
> debug timestamp = Yes
> debug prefix timestamp = No
> debug hires timestamp = Yes
> debug pid = No
> debug uid = No
> debug class = No
> enable core files = Yes
> smb ports = 445 139
> large readwrite = Yes
> max protocol = NT1
> min protocol = CORE
> min receivefile size = 0
> read raw = Yes
> write raw = Yes
> disable netbios = No
> reset on zero vc = No
> log writeable files on exit = No
> acl compatibility = auto
> defer sharing violations = Yes
> nt pipe support = Yes
> nt status support = Yes
> announce version = 4.9
> announce as = NT
> max mux = 50
> max xmit = 16644
> name resolve order = lmhosts wins host bcast
> max ttl = 259200
> max wins ttl = 518400
> min wins ttl = 21600
> time server = No
> unix extensions = No
> use spnego = Yes
> client signing = auto
> server signing = No
> client use spnego = Yes
> client ldap sasl wrapping = plain
> enable asu support = No
> svcctl list =
> deadtime = 10
> getwd cache = Yes
> keepalive = 300
> lpq cache time = 30
> max smbd processes = 0
> paranoid server security = Yes
> max disk size = 0
> max open files = 16384
> socket options = TCP_NODELAY SO_KEEPALIVE
> use mmap = Yes
> hostname lookups = No
> name cache timeout = 660
> ctdbd socket =
> cluster addresses =
> clustering = No
> ctdb timeout = 0
> ctdb locktime warn threshold = 0
> smb2 max read = 65536
> smb2 max write = 65536
> smb2 max trans = 65536
> smb2 max credits = 8192
> load printers = Yes
> printcap cache time = 750
> printcap name =
> cups server =
> cups encrypt = No
> cups connection timeout = 30
> iprint server =
> disable spoolss = No
> addport command =
> enumports command =
> addprinter command =
> deleteprinter command =
> show add printer wizard = Yes
> os2 driver map =
> mangling method = hash2
> mangle prefix = 1
> max stat cache size = 256
> stat cache = Yes
> machine password timeout = 604800
> add user script =
> rename user script =
> delete user script =
> add group script =
> delete group script =
> add user to group script =
> delete user from group script =
> set primary group script =
> add machine script =
> shutdown script =
> abort shutdown script =
> username map script =
> username map cache time = 0
> logon script =
> logon path = \\%N\%U\profile
> logon drive =
> logon home = \\%N\%U
> domain logons = No
> init logon delayed hosts =
> init logon delay = 100
> os level = 20
> lm announce = Auto
> lm interval = 60
> preferred master = No
> local master = Yes
> domain master = Auto
> browse list = Yes
> enhanced browsing = Yes
> dns proxy = Yes
> wins proxy = No
> wins server =
> wins support = No
> wins hook =
> kernel oplocks = Yes
> lock spin time = 200
> oplock break wait time = 0
> ldap admin dn =
> ldap delete dn = No
> ldap group suffix =
> ldap idmap suffix =
> ldap machine suffix =
> ldap passwd sync = no
> ldap replication sleep = 1000
> ldap suffix =
> ldap ssl = start tls
> ldap ssl ads = No
> ldap deref = auto
> ldap follow referral = Auto
> ldap timeout = 15
> ldap connection timeout = 2
> ldap page size = 1024
> ldap user suffix =
> ldap debug level = 0
> ldap debug threshold = 10
> eventlog list =
> add share command =
> change share command =
> delete share command =
> preload =
> lock directory = /var/lib/samba
> state directory = /var/lib/samba
> cache directory = /var/lib/samba
> pid directory = /var/run
> utmp directory =
> wtmp directory =
> utmp = No
> default service =
> message command =
> get quota command =
> set quota command =
> remote announce =
> remote browse sync =
> socket address = 0.0.0.0
> nmbd bind explicit broadcast = Yes
> homedir map = auto.home
> afs username map =
> afs token lifetime = 604800
> log nt token command =
> time offset = 0
> NIS homedir = No
> registry shares = No
> usershare allow guests = No
> usershare max shares = 0
> usershare owner only = Yes
> usershare path = /var/lib/samba/usershares
> usershare prefix allow list =
> usershare prefix deny list =
> usershare template share =
> allow insecure wide links = No
> async smb echo handler = No
> multicast dns register = Yes
> panic action =
> perfcount module =
> host msdfs = Yes
> passdb expand explicit = No
> idmap backend = tdb
> idmap cache time = 604800
> idmap negative cache time = 120
> idmap uid =
> idmap gid =
> template homedir = /home/%D/%U
> template shell = /bin/false
> winbind separator = \
> winbind cache time = 300
> winbind reconnect delay = 30
> winbind max clients = 200
> winbind enum users = Yes
> winbind enum groups = Yes
> winbind use default domain = No
> winbind trusted domains only = No
> winbind nested groups = Yes
> winbind expand groups = 1
> winbind nss info = template
> winbind refresh tickets = No
> winbind offline logon = No
> winbind normalize names = No
> winbind rpc only = No
> create krb5 conf = Yes
> ncalrpc dir = /var/ncalrpc
> winbind max domain connections = 1
> idmap config EXAMPLE : range = 2000000-2999999
> idmap config EXAMPLE : backend = rid
> idmap config * : range = 10544-10554
> idmap config * : backend = tdb
> comment =
> path =
> username =
> invalid users =
> valid users =
> admin users =
> read list =
> write list =
> printer admin =
> force user =
> force group =
> read only = Yes
> acl check permissions = Yes
> acl group control = No
> acl map full control = Yes
> create mask = 0744
> force create mode = 00
> security mask = 0777
> force security mode = 00
> directory mask = 0755
> force directory mode = 00
> directory security mask = 0777
> force directory security mode = 00
> force unknown acl user = No
> inherit permissions = No
> inherit acls = No
> inherit owner = No
> guest only = No
> administrative share = No
> guest ok = No
> only user = No
> hosts allow =
> hosts deny =
> allocation roundup size = 1048576
> aio read size = 0
> aio write size = 0
> aio write behind =
> ea support = No
> nt acl support = Yes
> profile acls = No
> map acl inherit = Yes
> afs share = No
> smb encrypt = auto
> block size = 1024
> change notify = Yes
> directory name cache size = 100
> kernel change notify = Yes
> max connections = 0
> min print space = 0
> strict allocate = No
> strict sync = No
> sync always = No
> use sendfile = No
> write cache size = 0
> max reported print jobs = 0
> max print jobs = 1000
> printable = No
> print notify backchannel = Yes
> print ok = No
> printing = cups
> cups options = raw
> print command =
> lpq command = %p
> lprm command =
> lppause command =
> lpresume command =
> queuepause command =
> queueresume command =
> printer name =
> use client driver = No
> default devmode = Yes
> force printername = No
> printjob username = %U
> default case = lower
> case sensitive = Auto
> preserve case = Yes
> short preserve case = Yes
> mangling char = ~
> hide dot files = Yes
> hide special files = No
> hide unreadable = No
> hide unwriteable files = No
> delete veto files = Yes
> veto files = /____archive____/Thumbs.db/
> hide files =
> veto oplock files =
> map archive = Yes
> map hidden = No
> map system = No
> map readonly = yes
> mangled names = Yes
> store dos attributes = Yes
> dmapi support = No
> browseable = Yes
> access based share enum = No
> blocking locks = Yes
> csc policy = manual
> fake oplocks = No
> locking = Yes
> oplocks = Yes
> level2 oplocks = Yes
> oplock contention limit = 2
> posix locking = Yes
> strict locking = Auto
> share modes = Yes
> dfree cache time = 0
> dfree command =
> copy =
> preexec =
> preexec close = No
> postexec =
> root preexec =
> root preexec close = No
> root postexec =
> available = Yes
> volume =
> fstype = NTFS
> set directory = No
> wide links = No
> follow symlinks = Yes
> dont descend =
> magic script =
> magic output =
> delete readonly = No
> dos filemode = No
> dos filetimes = Yes
> dos filetime resolution = No
> fake directory create times = No
> vfs objects = acl_xattr
> msdfs root = No
> msdfs proxy =
>
> [DATI]
> comment = DATI
> path = /opt/fileserver/shares/DATI
> read only = No
>
> [EDP]
> comment = EDP
> path = /opt/fileserver/shares/EDP
> read only = No
>
> [UTILITY]
> comment = UTILITY
> path = /opt/fileserver/shares/UTILITY
> read only = No
>
> [ARCHIVE]
> comment = ARCHIVE
> path = /opt/fileserver/archive/kvm-white.target1
> valid users = "@EXAMPLE\domain admins"
>
>
--
Danti Gionatan
Supporto Tecnico
Assyoma S.r.l. - www.assyoma.it
email: g.danti at assyoma.it - info at assyoma.it
GPG public key ID: FF5F32A8
More information about the samba
mailing list