Bug 13088 - tdbbackup fails on getting lock after open()
Summary: tdbbackup fails on getting lock after open()
Status: NEW
Alias: None
Product: TDB
Classification: Unclassified
Component: tools (show other bugs)
Version: unspecified
Hardware: x64 Linux
: P5 normal
Target Milestone: ---
Assignee: Samba QA Contact
QA Contact: Samba QA Contact
URL: https://lists.samba.org/archive/samba...
Keywords:
Depends on:
Blocks:
 
Reported: 2017-10-16 11:12 UTC by Davide Principi
Modified: 2019-08-07 14:26 UTC (History)
3 users (show)

See Also:


Attachments
Full build log on CentOS 7.4 (639.67 KB, text/x-log)
2017-10-16 11:12 UTC, Davide Principi
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Davide Principi 2017-10-16 11:12:00 UTC
Created attachment 13693 [details]
Full build log on CentOS 7.4

After upgrading my DC from 4.6.5 to 4.7.0 I found the following error from
my backup procedure:

    bash-4.2# tdbbackup /var/lib/samba/private/netlogon_creds_cli.tdb
    tdb_mutex_open_ok[/var/lib/samba/private/netlogon_creds_cli.tdb]: Can use mutexes only with MUTEX_LOCKING or NOLOCK
    Failed to open /var/lib/samba/private/netlogon_creds_cli.tdb

The problem occurs only with netlogon_creds_cli.tdb file. Backups of other .tdb files are created successfully.


This is the strace command output:


open("/var/lib/samba/private/netlogon_creds_cli.tdb", O_RDWR) = 3
fcntl(3, F_GETFD)                       = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
fcntl(3, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=1}) = 0
read(3, "TDB file\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 168) = 168
fstat(3, {st_mode=S_IFREG|0600, st_size=8888, ...}) = 0
fcntl(3, F_SETLK, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=4, l_len=1}) = -1 EAGAIN (Resource temporarily unavailable)
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3e532b0000
write(1, "tdb_mutex_open_ok[/var/lib/samba"..., 116tdb_mutex_open_ok[/var/lib/samba/private/netlogon_creds_cli.tdb]: Can use mutexes only with MUTEX_LOCKING or NOLOCK
) = 116
close(3)                                = 0
write(1, "Failed to open /var/lib/samba/pr"..., 61Failed to open /var/lib/samba/private/netlogon_creds_cli.tdb
) = 61
exit_group(1)                           = ?

----

The samba binaries are self-compiled on a CentOS 7.4 platform.

+ ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-systemd --enable-fhs


I attach the build log with all build options. The RPM .spec file is available here:

https://github.com/NethServer/ns-samba/blob/4.7.0/ns-samba.spec


Additional info:

bash-4.2# tdbtool /var/lib/samba/private/netlogon_creds_cli.tdb info              
Size of file/data: 8888/0
Header offset/logical size: 8192/696
Number of records: 0
Incompatible hash: yes
Active/supported feature flags: 0x00000001/0x00000001
Robust mutexes locking: yes
Smallest/average/largest keys: 0/0/0
Smallest/average/largest data: 0/0/0
Smallest/average/largest padding: 0/0/0
Number of dead records: 0
Smallest/average/largest dead records: 0/0/0
Number of free records: 0
Smallest/average/largest free records: 0/0/0
Number of hash chains: 131
Smallest/average/largest hash chains: 0/0/0
Number of uncoalesced records: 0
Smallest/average/largest uncoalesced runs: 0/0/0
Percentage keys/data/padding/free/dead/rechdrs&tailers/hashes: 0/0/0/0/0/0/6


I've found "Robust mutexes locking: no" on the same file, in a 4.6 installation.
Comment 1 Volker Lendecke 2017-10-16 12:24:34 UTC
For what it's worth: You don't need to back up that tdb....