Package: krb5-kdc
Version: 1.14.3+dfsg-1
Severity: critical
Hello,
I try create a database with the command
kdb5_util create -s -P foo
That seems to hang forever. Relevant part of a trace:
open("/var/lib/krb5kdc/principal.ok", O_RDWR|O_CREAT|O_TRUNC, 0600) = 3
fcntl64(3, F_OFD_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0,
l_len=6950411022381350912}) = -1 EINVAL (Invalid argument)
fcntl64(3, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
open("/var/lib/krb5kdc/principal", O_RDWR|O_CREAT|O_EXCL, 0600) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
fstat64(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
lseek(4, 4096, SEEK_SET) = 4096
read(4, "", 4096) = 0
open("/var/lib/krb5kdc/principal.kadm5", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
fstat64(5, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
fstat64(5, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
lseek(5, 4096, SEEK_SET) = 4096
read(5, "", 4096) = 0
lseek(5, 4096, SEEK_SET) = 4096
write(5,
"\1\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\24\0\0\20\377\377\377\377\377\377\377\377\377\377\377\377"...,
4096) = 4096
lseek(5, 0, SEEK_SET) = 0
write(5, "b1\5\0\3\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0"...,
4096) = 4096
fsync(5) = 0
close(5) = 0
open("/var/lib/krb5kdc/principal.kadm5.lock", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
close(5) = 0
access("/etc/krb5kdc/kdc.conf", R_OK) = 0
stat64("/etc/krb5kdc/kdc.conf", {st_mode=S_IFREG|0644, st_size=738, ...}) = 0
access("/etc/krb5.conf", R_OK) = 0
stat64("/etc/krb5.conf", {st_mode=S_IFREG|0644, st_size=729, ...}) = 0
open("/dev/urandom", O_RDONLY) = 5
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
fstat64(5, {st_mode=S_IFCHR|0666, st_rdev=makedev(1, 9), ...}) = 0
read(5,
"\344\nx\207\216\231\370u\16cRW\251c*\240\37\20\310\236\304\211\322\242\275\26\271#\351I\26\321"...,
64) = 64
close(5) = 0
gettimeofday({1470921186, 154266}, NULL) = 0
open("/var/lib/krb5kdc/principal.kadm5.lock", O_RDWR) = 5
fcntl64(5, F_SETFD, FD_CLOEXEC) = 0
fcntl64(5, F_OFD_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0,
l_len=6950411022381350912}) = -1 EINVAL (Invalid argument)
fcntl64(5, F_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = 0
access("/var/lib/krb5kdc/principal.kadm5.lock", F_OK) = 0
fcntl64(5, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0,
l_len=6950411022381350912}) = -1 EINVAL (Invalid argument)
fcntl64(5, F_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0, l_len=0}) = 0
lseek(4, 4096, SEEK_SET) = 4096
write(4,
"\1\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0\24\0\0\20\377\377\377\377\377\377\377\377\377\377\377\377"...,
4096) = 4096
lseek(4, 0, SEEK_SET) = 0
write(4, "b1\5\0\3\0\0\0\0\20\0\0\0\0\0\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0"...,
4096) = 4096
fsync(4) = 0
close(4) = 0
fcntl64(3, F_OFD_SETLKW, {l_type=F_UNLCK, l_whence=SEEK_SET, l_start=0,
l_len=6950411022381350912}) = 0
fcntl64(3, F_OFD_SETLKW, {l_type=F_WRLCK, l_whence=SEEK_SET, l_start=0,
l_len=6950411022381350912}
In the first few lines kdb5_util opens a file and acquires a lock.
Fast forward to the end of the trace, there the lock is released. Next
the process tries to re-acquire the lock and blocks. Sometimes, very
rarely, the process comes to a successful end without blocking.
Regards
hmw