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