smbd process (crashes and dumps and) disconnects on file delete.
Christopher R. Hertel
crh at samba.org
Wed Mar 29 01:18:31 UTC 2017
By the way, this is bug #11761, first reported last year. Glad I found it. :)
I've tested Volker's suggested fix and it appears to work.
Chris -)-----
On 03/28/2017 02:46 PM, Christopher R. Hertel via samba-technical wrote:
> I've narrowed this down to acl_tdb. If I don't load that one module, there
> is no crash on file deletion. If I do load that module, with or without
> xattr_tdb, then the crash occurs on file delete.
>
> I have just testing using acl_xattr instead of acl_tdb and that works just
> fine, so I can continue working on my project.
>
> I do believe, however, that I've uncovered a bug of some sort in the acl_tdb
> module.
>
> Chris -)-----
>
>
> On 03/28/2017 12:05 PM, Christopher R. Hertel via samba-technical wrote:
>> Amit, et. al.,
>>
>> I don't think it's a client-side issue. My testing has mostly ruled in
>> favor of this being a corner-case on the server side, driven by my
>> particular configuration requirements.
>>
>> Here's my base config:
>>
>> [global]
>> read only = no
>> server min protocol = NT1
>> server max protocol = SMB3
>> kernel oplocks = no
>> kernel share modes = no
>> posix locking = no
>> kernel change notify = no
>> oplocks = yes
>> level2 oplocks = yes
>> smb2 leases = yes
>> durable handles = yes
>> vfs objects = xattr_tdb, acl_tdb
>> ea support = yes
>> store dos attributes = yes
>>
>> As you can see, my goal is to cleanly contain all locking within Samba
>> itself, and not rely on the underlying file system. The same is true for
>> inotify, EAs, and Windows ACLs. The file system does not yet have support
>> for these features, but Samba *should* be able to manage them on its own
>> using the settings above.
>>
>> If someone sees an error in the above config, please let me know.
>>
>> If you add shares to the above, you should be able to reproduce the problem
>> I am seeing. If not... then things are weirder than I had imagined.
>>
>> Chris -)-----
>>
>>
>> On 03/28/2017 12:01 AM, amit kumar wrote:
>>> Hello,
>>>
>>> What's seen in bt?
>>>
>>> At 1st look it seems, samba client is trying to acquire lock before deletion.
>>>
>>> I cannot repro this Issue at my local system, this is my config:
>>>
>>> # vim /etc/samba/smb.conf
>>> [global]
>>> workgroup = WORKGROUP
>>> security = user
>>> passdb backend = tdbsam
>>> log level = 9
>>> log file = /var/log/log.*
>>> [myshare-home-fred]
>>> path = /home/fred
>>> browsable = yes
>>> guest ok = yes
>>> read only = no
>>> create mask = 0755
>>>
>>> $ smbclient //<ip-smb-server>/myshare-home-fred -U fred
>>> smb: \> rm file1 <=Deleted
>>> $
>>>
>>> Note to delete file,directory must be owned by logging user..
>>>
>>> Thanks
>>> On 03/28/2017 12:27 AM, Christopher R. Hertel via samba-technical wrote:
>>>> Before I open a ticket...
>>>>
>>>> Has anyone seen this behavior:
>>>>
>>>> smb: \> rm foo.txt
>>>> NT_STATUS_CONNECTION_DISCONNECTED deleting remote file \foo.txt
>>>> NT_STATUS_CONNECTION_DISCONNECTED listing \foo.txt
>>>> smb: \> SMBecho failed (NT_STATUS_CONNECTION_DISCONNECTED). The connection
>>>> is disconnected now
>>>>
>>>> ?
>>>>
>>>> I have tested against 4.6.1 and 4.5.7 with the same results. I have tried
>>>> smbclient and the CIFS kernel client with the same results. In the logs, I
>>>> am seeing this (consistently):
>>>>
>>>> [2017/03/27 19:52:03.375176, 0]
>>>> ../lib/dbwrap/dbwrap.c:165(dbwrap_check_lock_order)
>>>> Lock order violation: Trying /usr/local/samba/var/locks/file_ntacls.tdb at
>>>> 1 while /usr/local/samba/var/lock/locking.tdb at 1 is locked
>>>> [2017/03/27 19:52:03.376441, 0] ../lib/dbwrap/dbwrap.c:114(debug_lock_order)
>>>> lock order: 1:/usr/local/samba/var/lock/locking.tdb 2:<none> 3:<none>
>>>> [2017/03/27 19:52:03.376633, 0] ../source3/lib/util.c:791(smb_panic_s3)
>>>> PANIC (pid 3851): invalid lock_order
>>>> [2017/03/27 19:52:03.377786, 0] ../source3/lib/util.c:902(log_stack_trace)
>>>> BACKTRACE: 43 stack frames:
>>>> :
>>>> :
>>>> [2017/03/27 19:52:03.381678, 0] ../source3/lib/dumpcore.c:303(dump_core)
>>>> dumping core in /usr/local/samba/var/cores/smbd
>>>>
>>>> Invalid lock_order. Hmmm...
>>>>
>>>> Here's the interesting portion of the wire trace:
>>>> 45 11.656391 ::1 ::1 SMB 154 Delete Request, Path: \install.log
>>>> 46 11.669512 ::1 ::1 TCP 86 microsoft-ds > 50793 [FIN, ACK] Seq=1744
>>>> Ack=10390 Win=131072 Len=0 TSval=46500697 TSecr=46500683
>>>> 47 11.669574 ::1 ::1 TCP 86 50793 > microsoft-ds [FIN, ACK] Seq=10390
>>>> Ack=1745 Win=71168 Len=0 TSval=46500697 TSecr=46500697
>>>> 48 11.669586 ::1 ::1 TCP 86 microsoft-ds > 50793 [ACK] Seq=1745 Ack=10391
>>>> Win=131072 Len=0 TSval=46500697 TSecr=46500697
>>>>
>>>> Basically, the client sends the delete request, the server *performs the
>>>> delete* (the file is gone when I check) and then the crash causes the
>>>> disconnect.
>>>>
>>>> My smb.conf is set up for a file system that has no support for flock(),
>>>> fcntl() or kernel OpLocks. All client locking requests are being handled
>>>> internally by Samba. This test, however, has been run against an EXT4-based
>>>> share with the same results, so I don't believe that this is the result of a
>>>> bad interaction with a new FS.
>>>>
>>>> So... has anyone else seen this?
>>>>
>>>> Chris -)-----
>>>>
>>>
>>> --
>>> Thanks
>>> Amit Kumar
>>> There are three ways to get something done:
>>> (1) Do it yourself.
>>> (2) Hire someone to do it for you.
>>> (3) Forbid your kids to do it.
>>>
>>
>
More information about the samba-technical
mailing list