[Dovecot] 2.0.14 doveadm proxy list segfault

Tom Pawlowski tompru at jla.rutgers.edu
Thu Sep 29 20:21:34 EEST 2011


Hi Timo,

Periodic segfaults with doveadm proxy list:

root at director1:~) doveadm proxy list
doveadm(root): Error: LIST failed: Disconnected
Segmentation fault (core dumped)

Sometimes it's just the 'LIST failed' error, other times it's the error with
the segfault. Usually the first attempt to call it works, subsequent attempts
fail.

I've attached a strace log of it in action.

-- 
 Tom Pawlowski
 OIT-CSS System Administrator           office: Hill 147
 email: tompru at jla.rutgers.edu          phone:  (732) 445-2634
-------------- next part --------------
execve("/usr/bin/doveadm", ["doveadm", "proxy", "list"], [/* 26 vars */]) = 0
brk(0)                                  = 0x1bb97000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b99123e5000
uname({sys="Linux", node="director1", ...}) = 0
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib64/dovecot/tls/x86_64/libdovecot-storage.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/dovecot/tls/x86_64", 0x7fffbbe8e710) = -1 ENOENT (No such file or directory)
open("/usr/lib64/dovecot/tls/libdovecot-storage.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/dovecot/tls", 0x7fffbbe8e710) = -1 ENOENT (No such file or directory)
open("/usr/lib64/dovecot/x86_64/libdovecot-storage.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/usr/lib64/dovecot/x86_64", 0x7fffbbe8e710) = -1 ENOENT (No such file or directory)
open("/usr/lib64/dovecot/libdovecot-storage.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\242\242\3071\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=862264, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b99123e6000
mmap(0x31c7a00000, 2955496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x31c7a00000
mprotect(0x31c7acb000, 2093056, PROT_NONE) = 0
mmap(0x31c7cca000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xca000) = 0x31c7cca000
close(3)                                = 0
open("/usr/lib64/dovecot/libdovecot.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220ma\3071\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=508488, ...}) = 0
mmap(0x31c7600000, 2611840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x31c7600000
mprotect(0x31c7679000, 2093056, PROT_NONE) = 0
mmap(0x31c7878000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x78000) = 0x31c7878000
mmap(0x31c787c000, 6784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x31c787c000
close(3)                                = 0
open("/usr/lib64/dovecot/libcrypt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=26844, ...}) = 0
mmap(NULL, 26844, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b99123e7000
close(3)                                = 0
open("/lib64/libcrypt.so.1", O_RDONLY)  = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\t\240\257>\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=48600, ...}) = 0
mmap(0x3eafa00000, 2322880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3eafa00000
mprotect(0x3eafa09000, 2093056, PROT_NONE) = 0
mmap(0x3eafc08000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8000) = 0x3eafc08000
mmap(0x3eafc0a000, 184768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3eafc0a000
close(3)                                = 0
open("/usr/lib64/dovecot/libpam.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/libpam.so.0", O_RDONLY)    = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\"`N6\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=50904, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b99123ee000
mmap(0x364e600000, 2143696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x364e600000
mprotect(0x364e60b000, 2097152, PROT_NONE) = 0
mmap(0x364e80b000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xb000) = 0x364e80b000
close(3)                                = 0
open("/usr/lib64/dovecot/libdl.so.2", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/libdl.so.2", O_RDONLY)     = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16\340\255>\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=23360, ...}) = 0
mmap(0x3eade00000, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3eade00000
mprotect(0x3eade02000, 2097152, PROT_NONE) = 0
mmap(0x3eae002000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3eae002000
close(3)                                = 0
open("/usr/lib64/dovecot/librt.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/librt.so.1", O_RDONLY)     = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \"`\257>\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=53448, ...}) = 0
mmap(0x3eaf600000, 2132936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3eaf600000
mprotect(0x3eaf607000, 2097152, PROT_NONE) = 0
mmap(0x3eaf807000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x7000) = 0x3eaf807000
close(3)                                = 0
open("/usr/lib64/dovecot/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\332\241\255>\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1718120, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b99123ef000
mmap(0x3eada00000, 3498328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3eada00000
mprotect(0x3eadb4e000, 2093056, PROT_NONE) = 0
mmap(0x3eadd4d000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14d000) = 0x3eadd4d000
mmap(0x3eadd52000, 16728, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3eadd52000
close(3)                                = 0
open("/usr/lib64/dovecot/libaudit.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/libaudit.so.0", O_RDONLY)  = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340&`&8\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=98920, ...}) = 0
mmap(0x3826600000, 2191888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3826600000
mprotect(0x3826617000, 2093056, PROT_NONE) = 0
mmap(0x3826816000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x3826816000
close(3)                                = 0
open("/usr/lib64/dovecot/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/lib64/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240W \256>\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145824, ...}) = 0
mmap(0x3eae200000, 2204528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3eae200000
mprotect(0x3eae216000, 2093056, PROT_NONE) = 0
mmap(0x3eae415000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x3eae415000
mmap(0x3eae417000, 13168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3eae417000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b99123f0000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b99123f1000
arch_prctl(ARCH_SET_FS, 0x2b99123f13a0) = 0
mprotect(0x3eafc08000, 4096, PROT_READ) = 0
mprotect(0x3eae002000, 4096, PROT_READ) = 0
mprotect(0x3eaf807000, 4096, PROT_READ) = 0
mprotect(0x3eadd4d000, 16384, PROT_READ) = 0
mprotect(0x3ead81b000, 4096, PROT_READ) = 0
mprotect(0x3eae415000, 4096, PROT_READ) = 0
munmap(0x2b99123e7000, 26844)           = 0
set_tid_address(0x2b99123f1430)         = 29539
set_robust_list(0x2b99123f1440, 0x18)   = 0
futex(0x7fffbbe8f23c, FUTEX_WAKE_PRIVATE, 1) = 0
rt_sigaction(SIGRTMIN, {0x3eae205380, [], SA_RESTORER|SA_SIGINFO, 0x3eae20eb10}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x3eae2052b0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3eae20eb10}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
brk(0)                                  = 0x1bb97000
brk(0x1bbc0000)                         = 0x1bbc0000
uname({sys="Linux", node="director1", ...}) = 0
rt_sigaction(SIGPIPE, {0x1, [], SA_RESTORER|SA_RESTART, 0x3eada302d0}, NULL, 8) = 0
rt_sigaction(SIGALRM, {0x31c7648b40, [], SA_RESTORER|SA_SIGINFO, 0x3eada302d0}, NULL, 8) = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl(3, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
connect(3, {sa_family=AF_FILE, path="/var/run/dovecot/config"...}, 110) = 0
fcntl(3, F_GETFL)                       = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl(3, F_SETFL, O_RDWR)               = 0
write(3, "VERSION\tconfig\t2\t0\nREQ\tmodule=do"..., 38) = 38
fstat(3, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
alarm(10)                               = 0
read(3, "\n\n", 8192)                   = 2
alarm(0)                                = 10
open("/usr/lib64/dovecot/doveadm", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 4
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
getdents(4, /* 10 entries */, 32768)    = 464
getdents(4, /* 0 entries */, 32768)     = 0
close(4)                                = 0
futex(0x3eae0030ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/lib64/dovecot/doveadm/lib10_doveadm_acl_plugin.so", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\33\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=16696, ...}) = 0
mmap(NULL, 2112392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x2b99123f2000
mprotect(0x2b99123f6000, 2093056, PROT_NONE) = 0
mmap(0x2b99125f5000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x3000) = 0x2b99125f5000
close(4)                                = 0
munmap(0x2b99123f2000, 2112392)         = 0
open("/usr/lib64/dovecot/doveadm/lib10_doveadm_expire_plugin.so", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\24\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=12208, ...}) = 0
mmap(NULL, 2107912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x2b99123f2000
mprotect(0x2b99123f5000, 2093056, PROT_NONE) = 0
mmap(0x2b99125f4000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x2b99125f4000
close(4)                                = 0
munmap(0x2b99123f2000, 2107912)         = 0
open("/usr/lib64/dovecot/doveadm/lib10_doveadm_quota_plugin.so", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\v\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=7248, ...}) = 0
mmap(NULL, 2102936, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x2b99123f2000
mprotect(0x2b99123f4000, 2093056, PROT_NONE) = 0
mmap(0x2b99125f3000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1000) = 0x2b99125f3000
close(4)                                = 0
munmap(0x2b99123f2000, 2102936)         = 0
open("/usr/lib64/dovecot/doveadm/lib10_doveadm_zlib_plugin.so", O_RDONLY) = 4
read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260\22\0\0\0\0\0\0"..., 832) = 832
fstat(4, {st_mode=S_IFREG|0755, st_size=11048, ...}) = 0
mmap(NULL, 2106296, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x2b99123f2000
mprotect(0x2b99123f4000, 2097152, PROT_NONE) = 0
mmap(0x2b99125f4000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x2000) = 0x2b99125f4000
close(4)                                = 0
munmap(0x2b99123f2000, 2106296)         = 0
rt_sigaction(SIGINT, {0x31c7648d70, [], SA_RESTORER|SA_SIGINFO, 0x3eada302d0}, NULL, 8) = 0
pipe([4, 5])                            = 0
fcntl(4, F_GETFL)                       = 0 (flags O_RDONLY)
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
fcntl(5, F_GETFL)                       = 0x1 (flags O_WRONLY)
fcntl(5, F_SETFL, O_WRONLY|O_NONBLOCK)  = 0
fcntl(4, F_GETFD)                       = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
fcntl(5, F_GETFD)                       = 0
fcntl(5, F_SETFD, FD_CLOEXEC)           = 0
epoll_create(128)                       = 6
fcntl(6, F_GETFD)                       = 0
fcntl(6, F_SETFD, FD_CLOEXEC)           = 0
epoll_ctl(6, EPOLL_CTL_ADD, 4, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=465205840, u64=465205840}}) = 0
rt_sigaction(SIGTERM, {0x31c7648d70, [], SA_RESTORER|SA_SIGINFO, 0x3eada302d0}, NULL, 8) = 0
open("/dev/null", O_WRONLY|O_CREAT|O_APPEND, 0600) = 7
fcntl(7, F_GETFD)                       = 0
fcntl(7, F_SETFD, FD_CLOEXEC)           = 0
ioctl(1, TIOCGWINSZ, {ws_row=68, ws_col=155, ws_xpixel=0, ws_ypixel=0}) = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 8
fcntl(8, F_GETFL)                       = 0x2 (flags O_RDWR)
fcntl(8, F_SETFL, O_RDWR|O_NONBLOCK)    = 0
connect(8, {sa_family=AF_FILE, path="/var/run/dovecot/ipc"...}, 110) = 0
epoll_ctl(6, EPOLL_CTL_ADD, 8, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=465209040, u64=465209040}}) = 0
fstat(8, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0
lseek(8, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
getsockname(8, {sa_family=AF_FILE, path="\377\377\377\377\377\377\200\363\271\33"...}, [18446462603027808258]) = 0
writev(8, [{"proxy\t*\tLIST", 12}, {"\n", 1}], 2) = -1 EPIPE (Broken pipe)
--- SIGPIPE (Broken pipe) @ 0 (0) ---
epoll_wait(6, {{EPOLLIN|EPOLLHUP, {u32=465209040, u64=465209040}}}, 2, 4294967295) = 1
read(8, "", 8192)                       = 0
write(2, "doveadm(root): Error: LIST faile"..., 48) = 48
epoll_ctl(6, EPOLL_CTL_DEL, 8, {0, {u32=465209040, u64=465209040}}) = 0
close(8)                                = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV (core dumped) +++


More information about the dovecot mailing list