Hi Timo, hi all, after upgrading my server (both backends and load balancer) to 2.1.2 (from 2.0.17), I'm getting a log of login processes crashed in load balancer. Log lines are like: Mar 20 10:05:45 mailgw-lb dovecot: pop3-login: Fatal: master: service(pop3-login): child 27764 killed with signal 11 (core dumps disabled) Mar 20 10:06:17 mailgw-lb dovecot: imap-login: Fatal: master: service(imap-login): child 28468 killed with signal 11 (core dumps disabled) Stack trace of a crashed process is like: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1220163904 (LWP 27764)] 0xb77cd176 in ssl_proxy_is_handshaked (proxy=0x0) at ssl-proxy-openssl.c:710 710 { (gdb) bt #0 0xb77cd176 in ssl_proxy_is_handshaked (proxy=0x0) at ssl-proxy-openssl.c:710 #1 0xb77c7295 in client_get_log_str (client=0x807b830, msg=0x804e290 "proxy(aaaaaa at dddddd.it): disconnecting x.x.x.x (Disconnected by server)") at client-common.c:469 #2 0xb77c73c6 in client_log (client=0x807b830, msg=0x804e290 "proxy(aaaaaaa at dddddd.it): disconnecting x.x.x.x (Disconnected by server)") at client-common.c:553 #3 0xb77c9a45 in login_proxy_free_reason (_proxy=<value optimized out>, reason=0x804e248 "Disconnected by server") at login-proxy.c:373 #4 0xb77ca9b5 in server_input (proxy=0x0) at login-proxy.c:93 #5 0xb7793762 in io_loop_call_io (io=0x8094180) at ioloop.c:380 #6 0xb7794cc9 in io_loop_handler_run (ioloop=0x8055480) at ioloop-epoll.c:213 #7 0xb77936f9 in io_loop_run (ioloop=0x8055480) at ioloop.c:399 #8 0xb777e4c8 in master_service_run (service=0x80553b0, callback=0xb77cc110 <client_connected>) at master-service.c:544 #9 0xb77cbcee in login_binary_run (binary=0x804ad80, argc=2, argv=0x80551c0) at main.c:406 #10 0x08049812 in main (argc=0, argv=0x0) at client.c:303 The strange part of the story is that not all process crash. I'm trying to figure out if only TLS/SSL process crash. Any idea? Thanks Luca
Hi, On 20.3.2012, at 11.09, Luca Palazzo wrote:> Hi Timo, hi all, > after upgrading my server (both backends and load balancer) to 2.1.2 (from 2.0.17), I'm getting a log of login processes crashed in load balancer. > > 0xb77cd176 in ssl_proxy_is_handshaked (proxy=0x0) at ssl-proxy-openssl.c:710 > 710 { > (gdb) bt > #0 0xb77cd176 in ssl_proxy_is_handshaked (proxy=0x0) at ssl-proxy-openssl.c:710 > #1 0xb77c7295 in client_get_log_str (client=0x807b830, msg=0x804e290 "proxy(aaaaaa at dddddd.it): disconnecting x.x.x.x (Disconnected by server)") at client-common.c:469 > #2 0xb77c73c6 in client_log (client=0x807b830, msg=0x804e290 "proxy(aaaaaaa at dddddd.it): disconnecting x.x.x.x (Disconnected by server)") at client-common.c:553 > #3 0xb77c9a45 in login_proxy_free_reason (_proxy=<value optimized out>, reason=0x804e248 "Disconnected by server") at login-proxy.c:373Interesting. This happens because client_destroy() has already been called at the time login_proxy_free_reason() gets called. I'll need to look further into it, but for a quick workaround use the attached patch. -------------- next part -------------- A non-text attachment was scrubbed... Name: diff Type: application/octet-stream Size: 526 bytes Desc: not available URL: <http://dovecot.org/pipermail/dovecot/attachments/20120321/c4062568/attachment-0004.obj>
It worked. We have no more sigsegv on *-login process. Thanks Luca Nella citazione in data Wed Mar 21 16:17:56 2012, Timo Sirainen ha scritto:> Hi, > > On 20.3.2012, at 11.09, Luca Palazzo wrote: > >> Hi Timo, hi all, >> after upgrading my server (both backends and load balancer) to 2.1.2 (from 2.0.17), I'm getting a log of login processes crashed in load balancer. >> >> 0xb77cd176 in ssl_proxy_is_handshaked (proxy=0x0) at ssl-proxy-openssl.c:710 >> 710 { >> (gdb) bt >> #0 0xb77cd176 in ssl_proxy_is_handshaked (proxy=0x0) at ssl-proxy-openssl.c:710 >> #1 0xb77c7295 in client_get_log_str (client=0x807b830, msg=0x804e290 "proxy(aaaaaa at dddddd.it): disconnecting x.x.x.x (Disconnected by server)") at client-common.c:469 >> #2 0xb77c73c6 in client_log (client=0x807b830, msg=0x804e290 "proxy(aaaaaaa at dddddd.it): disconnecting x.x.x.x (Disconnected by server)") at client-common.c:553 >> #3 0xb77c9a45 in login_proxy_free_reason (_proxy=<value optimized out>, reason=0x804e248 "Disconnected by server") at login-proxy.c:373 > > Interesting. This happens because client_destroy() has already been called at the time login_proxy_free_reason() gets called. I'll need to look further into it, but for a quick workaround use the attached patch. >