I've tried 2 builds of dovecot, based on a amd64 rebuild of the experimental package on http://xi.rename-it.nl/debian/
I've tried to include as much useful info as possible, sorry if I've missed out anything of use. Let me know as I'm more then happy to assist in any way possible.
$ telnet host 110 Escape character is '^]'. +OK Dovecot ready. USER ian@domain.com +OK PASS ... +OK Logged in. Connection closed by foreign host.
in the logs: Feb 24 16:06:07 proxy dovecot: auth(default): client in: AUTH#0111#011PLAIN#011service=pop3#011lip=127.0.11.155#011rip=127.0.1.34#011lport=110#011rport=57834#011resp=<hidden> Feb 24 16:06:07 proxy dovecot: auth(default): cache(ian@domain.com,127.0.1.34): miss Feb 24 16:06:07 proxy dovecot: auth-worker(default): sql(ian@domain.com,127.0.1.34): query: SELECT password, password as pass, home_server as host, 'ian@domain.com' AS destuser, 'Y' AS nologin, 'Y' AS nodelay, 'Y' AS proxy, null AS nopassword FROM mail_user WHERE ( (username = 'ian' AND domain = 'timico.net') OR (username = 'ian@domain.com' AND domain = '') ) AND IF('pop3' = 'pop3', allow_pop3, true) = true AND IF('imap' = 'pop3', allow_imap, true) = true AND active = true LIMIT 1 Feb 24 16:06:07 proxy dovecot: auth(default): client out: OK#0111#011user=ian@domain.com#011pass=<hidden>#011host=127.0.11.106#011destuser=ian@domain.com#011nologin#011proxy Feb 24 16:06:07 proxy dovecot: pop3-login: proxy(ian@domain.com): started proxying to 127.0.11.106:110: user=<ian@domain.com>, method=PLAIN, rip=127.0.1.34, lip=127.0.11.155 Feb 24 16:06:07 proxy dovecot: auth(default): new auth connection: pid=6825 Feb 24 16:06:07 proxy kernel: pop3-login[6825]: segfault at 0000000000000128 rip 00000000004107b5 rsp 00007fff77bb6520 error 4 Feb 24 16:06:07 proxy dovecot: child 6825 (login) killed with signal 11 (ip=127.0.1.34)
# dovecot -n # 1.2.beta1: /etc/dovecot/dovecot.conf # OS: Linux 2.6.18-6-xen-amd64 x86_64 Debian 5.0 syslog_facility: local5 protocols: managesieve imap imaps pop3 pop3s disable_plaintext_auth: no login_dir: /var/run/dovecot/login login_executable(default): /usr/lib/dovecot/imap-login login_executable(imap): /usr/lib/dovecot/imap-login login_executable(pop3): /usr/lib/dovecot/pop3-login login_executable(managesieve): /usr/lib/dovecot/managesieve-login login_process_per_connection: no login_processes_count: 10 mail_max_userip_connections(default): 35 mail_max_userip_connections(imap): 35 mail_max_userip_connections(pop3): 10 mail_max_userip_connections(managesieve): 10 mail_executable(default): /usr/lib/dovecot/imap mail_executable(imap): /usr/lib/dovecot/imap mail_executable(pop3): /usr/lib/dovecot/pop3 mail_executable(managesieve): /usr/lib/dovecot/managesieve mail_plugins(default): quota imap_quota mail_plugins(imap): quota imap_quota mail_plugins(pop3): mail_plugins(managesieve): mail_plugin_dir(default): /usr/lib/dovecot/modules/imap mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap mail_plugin_dir(pop3): /usr/lib/dovecot/modules/pop3 mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve auth default: mechanisms: plain cram-md5 digest-md5 login ntlm cache_size: 4096 cache_ttl: 7200 user: nobody verbose: yes debug: yes passdb: driver: sql args: /etc/dovecot/dovecot-sql.conf userdb: driver: static args: static uid=mail gid=mail home=/dev/null
# cat /etc/dovecot/dovecot-sql.conf driver = mysql
connect = host=127.0.0.1 dbname=mail user=exim password=..
default_pass_scheme = plain
password_query =
SELECT
password, password as pass, home_server as host, '%u' AS
destuser, 'Y' AS nologin, 'Y' AS nodelay, 'Y' AS proxy, null AS
nopassword
FROM mail_user
WHERE (
(username = '%n' AND domain = '%d') OR
(username = '%u' AND domain = '')
)
AND IF('pop3' = '%s', allow_pop3, true) = true
AND IF('imap' = '%s', allow_imap, true) = true
AND active = true
LIMIT 1
$ strace -f dovecot -F [pid 6771] <... epoll_wait resumed> {{EPOLLIN, {u32=6613264, u64=6613264}}}, 6, 180000) = 1 [pid 6771] gettimeofday({1235491268, 481726}, {0, 0}) = 0 [pid 6771] read(10, "PASS Yast7310\r\n"..., 4075) = 15 [pid 6771] gettimeofday({1235491268, 482089}, NULL) = 0 [pid 6771] write(11, "AUTH\t1\tPLAIN\tservice=pop3\tlip=62."..., 120 <unfinished ...> [pid 6759] <... epoll_wait resumed> {{EPOLLIN, {u32=6850224, u64=6850224}}}, 34, 5000) = 1 [pid 6771] <... write resumed> ) = 120 [pid 6759] gettimeofday( <unfinished ...> [pid 6771] epoll_ctl(9, EPOLL_CTL_DEL, 10, {0, {u32=6613264, u64=6613264}} <unfinished ...> [pid 6759] <... gettimeofday resumed> {1235491268, 482588}, {0, 0}) = 0 [pid 6771] <... epoll_ctl resumed> ) = 0 [pid 6759] read(19, <unfinished ...> [pid 6771] gettimeofday( <unfinished ...> [pid 6759] <... read resumed> "AUTH\t1\tPLAIN\tservice=pop3\tlip=62."..., 4074) = 120 [pid 6771] <... gettimeofday resumed> {1235491268, 482873}, NULL) = 0 [pid 6759] write(2, "\1Iclient in: AUTH\t1\tPLAIN\tservice"..., 109 <unfinished ...> [pid 6771] epoll_wait(9, <unfinished ...> [pid 6756] <... epoll_wait resumed> {{EPOLLIN, {u32=6547120, u64=6547120}}}, 66, 1000) = 1 [pid 6759] <... write resumed> ) = 109 [pid 6756] gettimeofday( <unfinished ...> [pid 6759] write(2, "\1Icache(ian@domain.com,127.0.1.3"..., 42 <unfinished ...> [pid 6756] <... gettimeofday resumed> {1235491268, 483573}, {0, 0}) = 0 [pid 6759] <... write resumed> ) = 42 [pid 6756] read(18, <unfinished ...> [pid 6759] writev(8, [{"1\t"..., 2}, {"PASSV\t1\tYast7310\tuser=ian@timico."..., 149}, {"\n"..., 1}], 3 <unfinished ...> [pid 6756] <... read resumed> "\1Iclient in: AUTH\t1\tPLAIN\tservice"..., 64) = 64 [pid 6759] <... writev resumed> ) = 152 [pid 6756] gettimeofday( <unfinished ...> [pid 6759] gettimeofday( <unfinished ...> [pid 6756] <... gettimeofday resumed> {1235491268, 484168}, NULL) = 0 [pid 6759] <... gettimeofday resumed> {1235491268, 484172}, NULL) = 0 [pid 6756] epoll_wait(13, <unfinished ...> [pid 6759] gettimeofday( <unfinished ...> [pid 6756] <... epoll_wait resumed> {{EPOLLIN, {u32=6547120, u64=6547120}}}, 66, 656) = 1 [pid 6759] <... gettimeofday resumed> {1235491268, 484443}, NULL) = 0 [pid 6756] gettimeofday( <unfinished ...> [pid 6759] epoll_wait(7, <unfinished ...> [pid 6756] <... gettimeofday resumed> {1235491268, 484704}, {0, 0}) = 0 [pid 6756] read(18, "121.1.34\tlport=110\trport=53278\tre"..., 960) = 87 [pid 6756] time([1235491268]) = 1235491268 [pid 6756] stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 [pid 6756] sendto(10, "<174>Feb 24 16:01:08 dovecot: aut"..., 151, MSG_NOSIGNAL, NULL, 0) = 151 [pid 6756] time([1235491268]) = 1235491268 [pid 6756] stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 [pid 6756] sendto(10, "<174>Feb 24 16:01:08 dovecot: aut"..., 84, MSG_NOSIGNAL, NULL, 0) = 84 [pid 6756] gettimeofday({1235491268, 486445}, NULL) = 0 [pid 6756] epoll_wait(13, <unfinished ...> [pid 6760] <... epoll_wait resumed> {{EPOLLIN, {u32=6805840, u64=6805840}}}, 2, 2147483647) = 1 [pid 6760] gettimeofday({1235491268, 486817}, {0, 0}) = 0 [pid 6760] read(4, "1\tPASSV\t1\tYast7310\tuser=ian@timic"..., 1024) = 152 [pid 6760] write(2, "\1Isql(ian@domain.com,127.0.1.34)"..., 436 <unfinished ...> [pid 6756] <... epoll_wait resumed> {{EPOLLIN, {u32=6555168, u64=6555168}}}, 66, 654) = 1 [pid 6756] gettimeofday({1235491268, 487493}, {0, 0}) = 0 [pid 6756] read(19, "\1Isql(ian@domain.com,127.0.1.34)"..., 985) = 436 [pid 6756] time([1235491268]) = 1235491268 [pid 6756] stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 [pid 6756] sendto(10, "<174>Feb 24 16:01:08 dovecot: aut"..., 485, MSG_NOSIGNAL, NULL, 0) = 485 [pid 6756] gettimeofday({1235491268, 488538}, NULL) = 0 [pid 6756] epoll_wait(13, <unfinished ...> [pid 6760] <... write resumed> ) = 436 [pid 6760] poll([{fd=8, events=POLLIN|POLLPRI}], 1, 0) = 0 (Timeout) [pid 6760] write(8, "\212\1\0\0\3SELECT password, password as"..., 398) = 398 [pid 6760] read(8, "\1\0\0\1\10<\0\0\2\3def\4mail\tmail_user\tmail"..., 16384) = 435 [pid 6760] write(4, "1\tOK\tian@domain.com\t{plain}Yast73"..., 117 <unfinished ...> [pid 6759] <... epoll_wait resumed> {{EPOLLIN, {u32=6715408, u64=6715408}}}, 34, 1720) = 1 [pid 6759] gettimeofday({1235491268, 489910}, {0, 0}) = 0 [pid 6759] read(8, "1\tOK\tian@domain.com\t{plain}Yast73"..., 1024) = 117 [pid 6759] gettimeofday({1235491268, 490296}, NULL) = 0 [pid 6759] time(NULL) = 1235491268 [pid 6759] writev(19, [{"OK\t1\tuser=ian@domain.com\tpass=Yas"..., 95}, {"\n"..., 1}], 2 <unfinished ...> [pid 6771] <... epoll_wait resumed> {{EPOLLIN, {u32=6614448, u64=6614448}}}, 6, 180000) = 1 [pid 6759] <... writev resumed> ) = 96 [pid 6771] gettimeofday( <unfinished ...> [pid 6759] write(2, "\1Iclient out: OK\t1\tuser=ian@timic"..., 110 <unfinished ...> [pid 6771] <... gettimeofday resumed> {1235491268, 491012}, {0, 0}) = 0 [pid 6759] <... write resumed> ) = 110 [pid 6756] <... epoll_wait resumed> {{EPOLLIN, {u32=6547120, u64=6547120}}}, 66, 652) = 1 [pid 6771] read(11, <unfinished ...> [pid 6759] gettimeofday( <unfinished ...> [pid 6756] gettimeofday( <unfinished ...> [pid 6771] <... read resumed> "OK\t1\tuser=ian@domain.com\tpass=Yas"..., 3913) = 96 [pid 6759] <... gettimeofday resumed> {1235491268, 491299}, NULL) = 0 [pid 6756] <... gettimeofday resumed> {1235491268, 491458}, {0, 0}) = 0 [pid 6771] socket(PF_INET, SOCK_STREAM, IPPROTO_IP <unfinished ...> [pid 6759] epoll_wait(7, <unfinished ...> [pid 6756] read(18, <unfinished ...> [pid 6771] <... socket resumed> ) = 12 [pid 6756] <... read resumed> "\1Iclient out: OK\t1\tuser=ian@timic"..., 873) = 110 [pid 6771] setsockopt(12, SOL_SOCKET, SO_REUSEADDR, [1], 4 <unfinished ...> [pid 6756] time( <unfinished ...> [pid 6771] <... setsockopt resumed> ) = 0 [pid 6756] <... time resumed> [1235491268]) = 1235491268 [pid 6771] setsockopt(12, SOL_SOCKET, SO_KEEPALIVE, [1], 4 <unfinished ...> [pid 6756] stat("/etc/localtime", <unfinished ...> [pid 6771] <... setsockopt resumed> ) = 0 [pid 6756] <... stat resumed> {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 [pid 6771] fcntl(12, F_GETFL <unfinished ...> [pid 6756] sendto(10, "<174>Feb 24 16:01:08 dovecot: aut"..., 152, MSG_NOSIGNAL, NULL, 0 <unfinished ...> [pid 6771] <... fcntl resumed> ) = 0x2 (flags O_RDWR) [pid 6756] <... sendto resumed> ) = 152 [pid 6771] fcntl(12, F_SETFL, O_RDWR|O_NONBLOCK <unfinished ...> [pid 6756] gettimeofday( <unfinished ...> [pid 6771] <... fcntl resumed> ) = 0 [pid 6756] <... gettimeofday resumed> {1235491268, 493007}, NULL) = 0 [pid 6771] connect(12, {sa_family=AF_INET, sin_port=htons(110), sin_addr=inet_addr("127.0.11.106")}, 16 <unfinished ...> [pid 6756] epoll_wait(13, <unfinished ...> [pid 6771] <... connect resumed> ) = -1 EINPROGRESS (Operation now in progress) [pid 6771] epoll_ctl(9, EPOLL_CTL_ADD, 12, {EPOLLOUT|EPOLLERR|EPOLLHUP, {u32=6632256, u64=6632256}}) = 0 [pid 6771] gettimeofday({1235491268, 493619}, NULL) = 0 [pid 6771] epoll_wait(9, {{EPOLLOUT, {u32=6632256, u64=6632256}}}, 6, 179989) = 1 [pid 6771] gettimeofday({1235491268, 493987}, {0, 0}) = 0 [pid 6771] getsockopt(12, SOL_SOCKET, SO_ERROR, [18141331972947968], [4]) = 0 [pid 6771] fstat(12, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 [pid 6771] lseek(12, 0, SEEK_CUR) = -1 ESPIPE (Illegal seek) [pid 6771] getsockname(12, {sa_family=AF_INET, sin_port=htons(37777), sin_addr=inet_addr("127.0.11.155")}, [28487315483525136]) = 0 [pid 6771] epoll_ctl(9, EPOLL_CTL_DEL, 12, {0, {u32=6632256, u64=6632256}}) = 0 [pid 6771] epoll_ctl(9, EPOLL_CTL_ADD, 12, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=6632256, u64=6632256}}) = 0 [pid 6771] gettimeofday({1235491268, 495369}, NULL) = 0 [pid 6771] epoll_wait(9, {{EPOLLIN, {u32=6632256, u64=6632256}}}, 6, 179987) = 1 [pid 6771] gettimeofday({1235491268, 495723}, {0, 0}) = 0 [pid 6771] read(12, "+OK Dovecot ready.\r\n"..., 4096) = 20 [pid 6771] write(12, "USER ian@domain.com\r\n"..., 21) = 21 [pid 6771] gettimeofday({1235491268, 496303}, NULL) = 0 [pid 6771] epoll_wait(9, {{EPOLLIN, {u32=6632256, u64=6632256}}}, 6, 179986) = 1 [pid 6771] gettimeofday({1235491268, 496648}, {0, 0}) = 0 [pid 6771] read(12, "+OK\r\n"..., 4076) = 5 [pid 6771] write(12, "PASS Yast7310\r\n"..., 15) = 15 [pid 6771] gettimeofday({1235491268, 497197}, NULL) = 0 [pid 6771] epoll_wait(9, <unfinished ...> [pid 6760] <... write resumed> ) = 117 [pid 6760] epoll_wait(7, <unfinished ...> [pid 6771] <... epoll_wait resumed> {{EPOLLIN, {u32=6632256, u64=6632256}}}, 6, 179985) = 1 [pid 6771] gettimeofday({1235491268, 500363}, {0, 0}) = 0 [pid 6771] read(12, "+OK Logged in.\r\n"..., 4071) = 16 [pid 6771] write(10, "+OK Logged in.\r\n"..., 16) = 16 [pid 6771] epoll_ctl(9, EPOLL_CTL_DEL, 12, {0, {u32=6632256, u64=6632256}}) = 0 [pid 6771] epoll_ctl(9, EPOLL_CTL_ADD, 12, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=6632256, u64=6632256}}) = 0 [pid 6771] epoll_ctl(9, EPOLL_CTL_ADD, 10, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=6613264, u64=6613264}}) = 0 [pid 6771] write(2, "\1Iproxy(ian@domain.com): started "..., 136 <unfinished ...> [pid 6756] <... epoll_wait resumed> {{EPOLLIN, {u32=6571888, u64=6571888}}}, 66, 647) = 1 [pid 6771] <... write resumed> ) = 136 [pid 6756] gettimeofday( <unfinished ...> [pid 6771] epoll_ctl(9, EPOLL_CTL_DEL, 11, {0, {u32=6614448, u64=6614448}} <unfinished ...> [pid 6756] <... gettimeofday resumed> {1235491268, 501828}, {0, 0}) = 0 [pid 6771] <... epoll_ctl resumed> ) = 0 [pid 6756] read(42, <unfinished ...> [pid 6771] close(11 <unfinished ...> [pid 6756] <... read resumed> "\1Iproxy(ian@domain.com): started "..., 1007) = 136 [pid 6771] <... close resumed> ) = 0 [pid 6759] <... epoll_wait resumed> {{EPOLLIN|EPOLLHUP, {u32=6850224, u64=6850224}}}, 34, 1713) = 1 [pid 6756] time( <unfinished ...> [pid 6771] open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC <unfinished ...> [pid 6759] gettimeofday( <unfinished ...> [pid 6756] <... time resumed> [1235491268]) = 1235491268 [pid 6771] <... open resumed> ) = 11 [pid 6759] <... gettimeofday resumed> {1235491268, 502577}, {0, 0}) = 0 [pid 6756] stat("/etc/localtime", <unfinished ...> [pid 6771] fstat(11, <unfinished ...> [pid 6759] read(19, <unfinished ...> [pid 6756] <... stat resumed> {st_mode=S_IFREG|0644, st_size=118, ...}) = 0 [pid 6771] <... fstat resumed> {st_mode=S_IFDIR|0750, st_size=4096, ...}) = 0 [pid 6759] <... read resumed> ""..., 3954) = 0 [pid 6756] sendto(10, "<174>Feb 24 16:01:08 dovecot: pop"..., 175, MSG_NOSIGNAL, NULL, 0 <unfinished ...> [pid 6771] fcntl(11, F_SETFD, FD_CLOEXEC <unfinished ...> [pid 6759] epoll_ctl(7, EPOLL_CTL_DEL, 19, {0, {u32=6850224, u64=6850224}} <unfinished ...> [pid 6756] <... sendto resumed> ) = 175 [pid 6771] <... fcntl resumed> ) = 0 [pid 6759] <... epoll_ctl resumed> ) = 0 [pid 6756] gettimeofday( <unfinished ...> [pid 6771] getdents(11, <unfinished ...> [pid 6759] close(19 <unfinished ...> [pid 6756] <... gettimeofday resumed> {1235491268, 503587}, NULL) = 0 [pid 6771] <... getdents resumed> /* 4 entries */, 4096) = 120 [pid 6759] <... close resumed> ) = 0 [pid 6756] epoll_wait(13, <unfinished ...> [pid 6771] stat("ssl-parameters.dat", <unfinished ...> [pid 6759] gettimeofday( <unfinished ...> [pid 6771] <... stat resumed> {st_mode=S_IFREG|0644, st_size=230, ...}) = 0 [pid 6759] <... gettimeofday resumed> {1235491268, 504097}, NULL) = 0 [pid 6771] stat("default", <unfinished ...> [pid 6759] epoll_wait(7, <unfinished ...> [pid 6771] <... stat resumed> {st_mode=S_IFSOCK|0660, st_size=0, ...}) = 0 [pid 6771] socket(PF_FILE, SOCK_STREAM, 0) = 13 [pid 6771] fcntl(13, F_GETFL) = 0x2 (flags O_RDWR) [pid 6771] fcntl(13, F_SETFL, O_RDWR|O_NONBLOCK) = 0 [pid 6771] connect(13, {sa_family=AF_FILE, path="default"...}, 110 <unfinished ...> [pid 6759] <... epoll_wait resumed> {{EPOLLIN, {u32=6725824, u64=6725824}}}, 34, 1700) = 1 [pid 6771] <... connect resumed> ) = 0 [pid 6759] gettimeofday( <unfinished ...> [pid 6771] epoll_ctl(9, EPOLL_CTL_ADD, 13, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=6631760, u64=6631760}} <unfinished ...> [pid 6759] <... gettimeofday resumed> {1235491268, 505438}, {0, 0}) = 0 [pid 6771] <... epoll_ctl resumed> ) = 0 [pid 6759] accept(3, <unfinished ...> [pid 6771] fstat(13, <unfinished ...> [pid 6759] <... accept resumed> {sa_family=AF_FILE, path="\244I"...}, [8589934594]) = 19 [pid 6771] <... fstat resumed> {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 [pid 6759] fcntl(19, F_GETFL <unfinished ...> [pid 6771] lseek(13, 0, SEEK_CUR <unfinished ...> [pid 6759] <... fcntl resumed> ) = 0x2 (flags O_RDWR) [pid 6771] <... lseek resumed> ) = -1 ESPIPE (Illegal seek) [pid 6759] fcntl(19, F_SETFL, O_RDWR|O_NONBLOCK <unfinished ...> [pid 6771] getsockname(13, <unfinished ...> [pid 6759] <... fcntl resumed> ) = 0 [pid 6771] <... getsockname resumed> {sa_family=AF_FILE, path=@""}, [28402515649232898]) = 0 [pid 6759] fstat(19, <unfinished ...> [pid 6771] gettimeofday( <unfinished ...> [pid 6759] <... fstat resumed> {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 [pid 6771] <... gettimeofday resumed> {1235491268, 506596}, NULL) = 0 [pid 6759] lseek(19, 0, SEEK_CUR <unfinished ...> [pid 6771] write(13, "VERSION\t1\t0\nCPID\t6771\n"..., 22 <unfinished ...> [pid 6759] <... lseek resumed> ) = -1 ESPIPE (Illegal seek) [pid 6771] <... write resumed> ) = 22 [pid 6759] getsockname(19, <unfinished ...> [pid 6771] getdents(11, <unfinished ...> [pid 6759] <... getsockname resumed> {sa_family=AF_FILE, path="/var/run/dovecot/login/def!"...}, [29420113660739617]) = 0 [pid 6771] <... getdents resumed> /* 0 entries */, 4096) = 0 [pid 6759] epoll_ctl(7, EPOLL_CTL_ADD, 19, {EPOLLIN|EPOLLPRI|EPOLLERR|EPOLLHUP, {u32=6850224, u64=6850224}} <unfinished ...> [pid 6771] close(11 <unfinished ...> [pid 6759] <... epoll_ctl resumed> ) = 0 [pid 6771] <... close resumed> ) = 0 [pid 6759] writev(19, [{"MECH\tPLAIN\tplaintext\nMECH\tCRAM-MD"..., 148}, {"VERSION\t1\t0\nSPID\t6759\nCUID\t31\nDON"..., 35}], 2 <unfinished ...> [pid 6771] --- SIGSEGV (Segmentation fault) @ 0 (0) --- Process 6771 detached
On Tue, 2009-02-24 at 16:14 +0000, Ian P. Christian wrote:
Feb 24 16:06:07 proxy kernel: pop3-login[6825]: segfault at 0000000000000128 rip 00000000004107b5 rsp 00007fff77bb6520 error 4 Feb 24 16:06:07 proxy dovecot: child 6825 (login) killed with signal 11 (ip=127.0.1.34)
You can reproduce this always? If so, could you get a gdb backtrace?
login_processes_count: 10
Set this to 1. Then start dovecot. You'll see one pop3-login process. Attach gdb to it:
gdb -p <pid of pop3-login> cont <cause it to crash> bt full
And paste the output.
Timo Sirainen schreef:
On Tue, 2009-02-24 at 16:14 +0000, Ian P. Christian wrote:
Feb 24 16:06:07 proxy kernel: pop3-login[6825]: segfault at 0000000000000128 rip 00000000004107b5 rsp 00007fff77bb6520 error 4 Feb 24 16:06:07 proxy dovecot: child 6825 (login) killed with signal 11 (ip=127.0.1.34)
You can reproduce this always? If so, could you get a gdb backtrace?
login_processes_count: 10
Set this to 1. Then start dovecot. You'll see one pop3-login process. Attach gdb to it:
gdb -p <pid of pop3-login> cont <cause it to crash> bt full
And paste the output. Oh and make sure you have debug symbols enabled. The Debian package strips those by default. Set the environment variable:
DEB_BUILD_OPTIONS=nostrip
And (re-)build your package.
Regards,
-- Stephan Bosch stephan@rename-it.nl
Hope this helps Timo, thanks! Hope I'm not doing anything stupid ;)
(gdb) cont Continuing.
Program received signal SIGSEGV, Segmentation fault. i_stream_next_line (stream=0x6533a0) at istream.c:248 248 istream.c: No such file or directory. in istream.c (gdb) bt full #0 i_stream_next_line (stream=0x6533a0) at istream.c:248 _stream = (struct istream_private *) 0x0 ret_buf = <value optimized out> i = <value optimized out> #1 0x0000000000405fdd in proxy_input (input=0x6533a0, output=0x653528, client=0x64e790) at pop3-proxy.c:210 line = 0x6271b8 "?qb" __PRETTY_FUNCTION__ = "proxy_input" #2 0x0000000000411d5b in io_loop_handler_run (ioloop=<value optimized out>) at ioloop-epoll.c:202 ctx = (struct ioloop_handler_context *) 0x64a050 event = (const struct epoll_event *) 0x64cd40 list = (struct io_list *) 0x6532f0 io = (struct io_file *) 0x64fe30 tv = {tv_sec = 179, tv_usec = 952746} t_id = 2 msecs = <value optimized out> ret = 1 call = <value optimized out> #3 0x00000000004111e8 in io_loop_run (ioloop=0x64bf00) at ioloop.c:338 No locals. #4 0x0000000000407c57 in main (argc=1, argv=0x7fff20ba3748, envp=0x7fff20ba3758) at main.c:481 group_name = <value optimized out> remote_ip = {family = 18656, u = {ip6 = {in6_u = {u6_addr8 = ":+\000\000\220?A\000\000\000\000\000\000\000\000", u6_addr16 = {11066, 0, 48016, 65, 0, 0, 0, 0}, u6_addr32 = {11066, 4307856, 0, 0}}}, ip4 = {s_addr = 11066}}} local_ip = {family = 1, u = {ip6 = {in6_u = {u6_addr8 = ":+\000\000\000\000\000\000\000\000\000\000\001\000\000", u6_addr16 = {11066, 0, 0, 0, 0, 0, 1, 0}, u6_addr32 = {11066, 0, 0, 1}}}, ip4 = {s_addr = 11066}}} remote_port = 0 local_port = 0 max_fds = 532 proxy = (struct ssl_proxy *) 0x0 client = (struct client *) 0x0 i = 11066 fd = 532 master_fd = -1 ssl = <value optimized out>
On Tue, 2009-02-24 at 21:29 +0000, Ian P. Christian wrote:
#1 0x0000000000405fdd in proxy_input (input=0x6533a0, output=0x653528, client=0x64e790) at pop3-proxy.c:210 line = 0x6271b8 "?qb" __PRETTY_FUNCTION__ = "proxy_input"
Looks like the POP3 proxying code was just broken. Fixed: http://hg.dovecot.org/dovecot-1.2/rev/98e1115cd8f0
2009/2/24 Timo Sirainen <tss@iki.fi>:
Looks like the POP3 proxying code was just broken. Fixed: http://hg.dovecot.org/dovecot-1.2/rev/98e1115cd8f0
Timo, thank you so much for your amazingly fast response - I really appreciate it.
Stephan, how often does your apt repos re-bundle the source package from RCS?
Ian P. Christian wrote:
2009/2/24 Timo Sirainen <tss@iki.fi>:
Looks like the POP3 proxying code was just broken. Fixed: http://hg.dovecot.org/dovecot-1.2/rev/98e1115cd8f0
Timo, thank you so much for your amazingly fast response - I really appreciate it.
Stephan, how often does your apt repos re-bundle the source package from RCS? Every hour.
v1.1 starts building at *:30 and v1.2 starts building at *:50. A build takes about 10 minutes on this server.
Regards,
-- Stephan Bosch stephan@rename-it.nl
participants (3)
-
Ian P. Christian
-
Stephan Bosch
-
Timo Sirainen