Bug#560301: Cyrus binaries are compiled across wrong libkrb5
Dmitry Katsubo
dma_k at mail.ru
Thu Dec 10 11:25:36 UTC 2009
Package: cyrus-imapd-2.2
Version: 2.2.13-17
It looks like cyrus package was compiled across libkrb5.so.1x and linked
against libkrb5.so.2x. The symptom is: "notifyd" and "lmtpd" services
exit even before entering the debug mode (so, "-D" will not help):
Dec 9 14:17:05 centurion cyrus/master[524]: set maximum file
descriptors to 256/256
Dec 9 14:17:05 centurion cyrus/master[524]: about to exec
/usr/lib/cyrus/bin/notifyd
Dec 9 14:17:05 centurion cyrus/master[525]: about to exec
/usr/lib/cyrus/bin/lmtpd
Dec 9 14:17:05 centurion cyrus/master[496]: process 524 exited, status 1
Dec 9 14:17:05 centurion cyrus/master[496]: service notify pid 524 in
READY state: terminated abnormally
Dec 9 14:17:05 centurion cyrus/master[496]: service notify now has 0
ready workers
Dec 9 14:17:05 centurion cyrus/master[496]: process 525 exited, status 1
Dec 9 14:17:05 centurion cyrus/master[496]: service lmtpunix pid 525 in
READY state: terminated abnormally
Dec 9 14:17:05 centurion cyrus/master[496]: service lmtpunix now has 0
ready workers
The most crucial thing about the issue is that the error message,
printed by a child process (see writev(2, ..) call below), is not
forwarded to logger.
The workaround is to recompile cyrus-imapd-2.2 in local environment (one
should go through issues listed in
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560207)
=== Information from binaries ===
# strings /usr/lib/cyrus/bin/notifyd | grep 'HEIMDAL_KRB5'
HEIMDAL_KRB5_1.0
# strings /usr/lib/libkrb5.so.25 | grep 'HEIMDAL_KRB5'
HEIMDAL_KRB5_2.0
=== strace log ===
[pid 507] send(6, "<23>Dec 9 14:16:52 cyrus/master[507]: about to
exec /usr/lib/cyrus/bin/notifyd", 79, MSG_NOSIGNAL) = 79
[pid 507] execve("/usr/lib/cyrus/bin/notifyd", ["notifyd", "-D"], [/*
36 vars */]) = 0
...
[pid 507] open("/usr/lib/libkrb5.so.25", O_RDONLY) = 6
...
[pid 507] mmap2(NULL, 84316, PROT_READ|PROT_EXEC,
MAP_PRIVATE|MAP_DENYWRITE, 6, 0) = 0xb71f8000
[pid 507] mmap2(0xb720c000, 4096, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 6, 0x13) = 0xb720c000
[pid 507] close(6) = 0
[[pid 507] writev(2, [{"notifyd", 7}, {": ", 2},
{"/usr/lib/libkrb5.so.25", 22}, {": ", 2}, {"version `HEIMDAL_KRB5_1.0'
not found (required by notifyd)", 58}, {"\n", 1}], 6) = 92
[pid 507] exit_group(1) = ?
Process 507 detached
--- SIGCHLD (Child exited) @ 0 (0) ---
=== libraries ===
# dpkg -l | egrep '(cyrus|libkrb5)' | cut -c1-70
ii cyrus-admin-2.2 2.2.13-17
ii cyrus-clients-2.2 2.2.13-17
ii cyrus-common-2.2 2.2.13-17
ii cyrus-imapd-2.2 2.2.13-17
ii libcyrus-imap-perl22 2.2.13-17
ii libkrb5-25-heimdal 1.3.1.dfsg.1-3
ii libkrb5-3 1.7+dfsg-3
ii libkrb5-dev 1.7+dfsg-3
ii libkrb5support0 1.7+dfsg-3
--
With best regards,
Dmitry
More information about the Pkg-Cyrus-imapd-Debian-devel
mailing list