In data venerdì 7 settembre 2018 18:43:36 CEST, Timo Sirainen ha scritto:
Hi Timo; it happened again, this time on a "high-performance" instance (e.g., WITH service_count=0)
On 7 Sep 2018, at 16.50, Simone Lazzaris <s.lazzaris@interactive.eu> wrote:
Some more information: the issue has just occurred, again on an instance without the "service_count = 0" configuration directive on pop3-login. Could you also try two more things when it happens again:
ltrace -tt -e '*' -o ltrace.log -p <pid> (My guess this isn't going to be very useful, but just in case it might be..)
Done; unfortunately, ltrace.log is empty.
gdb -p <pid> bt full quit
Here it is:
root@imapfront2:/usr/local/src/dovecot-2.2.36/src# gdb -p 31635 GNU gdb (GDB) 7.4.1-debian Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Attaching to process 31635 Reading symbols from /usr/local/libexec/dovecot/director...done. Reading symbols from /usr/local/lib/dovecot/libdovecot.so.0...done. Loaded symbols for /usr/local/lib/dovecot/libdovecot.so.0 Reading symbols from /lib/i386-linux-gnu/i686/cmov/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libc.so.6 Reading symbols from /lib/i386-linux-gnu/i686/cmov/libdl.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libdl.so.2 Reading symbols from /lib/i386-linux-gnu/i686/cmov/librt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib/i386-linux-gnu/i686/cmov/librt.so.1 Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/ libthread_db.so.1". Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 0xb76fa428 in __kernel_vsyscall () (gdb) bt full #0 0xb76fa428 in __kernel_vsyscall () No symbol table info available. #1 0xb752929e in epoll_ctl () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 No symbol table info available. #2 0xb7678aa0 in io_loop_handle_add (io=io@entry=0x815db90) at ioloop- epoll.c:106 ctx = 0x8144e98 list = 0x814556c event = {events = 27, data = {ptr = 0x815c160, fd = 135643488, u32 = 135643488, u64 = 135643488}} op = 1 first = <optimized out> #3 0xb7676a7d in io_add_file (fd=fd@entry=27, condition=condition@entry=IO_READ, source_filename=source_filename@entry=0x805f7f4 "doveadm-connection.c", source_linenum=source_linenum@entry=1070, callback=callback@entry=0x8057e10 <doveadm_connection_input>, context=context@entry=0x8166398) at ioloop.c:64 io = 0x815db90 __FUNCTION__ = "io_add_file" #4 0xb7676bef in io_add (fd=27, condition=condition@entry=IO_READ, source_filename=source_filename@entry=0x805f7f4 "doveadm-connection.c", source_linenum=source_linenum@entry=1070, callback=callback@entry=0x8057e10 <doveadm_connection_input>, context=context@entry=0x8166398) at ioloop.c:87 io = <optimized out> __FUNCTION__ = "io_add" #5 0x08057135 in doveadm_connection_set_io (conn=conn@entry=0x8166398) at doveadm-connection.c:1070 No locals. #6 0x08059528 in doveadm_connections_ring_synced () at doveadm-connection.c: 1171 conn = 0x8166398 callback = 0x8057f90 <doveadm_connection_cmd_run_synced> #7 0xb76777b7 in io_loop_handle_timeouts_real (ioloop=0x8138678) at ioloop.c: 568 timeout = 0x8165a38 item = 0x8165a38 tv = {tv_sec = 0, tv_usec = 0} tv_call = {tv_sec = 1536404874, tv_usec = 999375} t_id = 3 #8 io_loop_handle_timeouts (ioloop=ioloop@entry=0x8138678) at ioloop.c:581 _data_stack_cur_id = 2 #9 0xb7678dd2 in io_loop_handler_run_internal (ioloop=ioloop@entry=0x8138678) at ioloop-epoll.c:196 ctx = 0x8144e98 events = 0x0 event = 0x8138678 list = <optimized out> io = <optimized out> tv = {tv_sec = 0, tv_usec = 0} events_count = 15 msecs = 0 ret = 0 i = <optimized out> j = <optimized out> call = <optimized out> __FUNCTION__ = "io_loop_handler_run_internal" #10 0xb7677496 in io_loop_handler_run (ioloop=ioloop@entry=0x8138678) at ioloop.c:649 No locals. ---Type <return> to continue, or q <return> to quit--- #11 0xb7677658 in io_loop_run (ioloop=0x8138678) at ioloop.c:624 __FUNCTION__ = "io_loop_run" #12 0xb75f045e in master_service_run (service=0x81385a8, callback=callback@entry=0x804d360 <client_connected>) at master-service.c:719 No locals. #13 0x0804cf5e in main (argc=1, argv=0x8138300) at main.c:366 set_roots = {0x805f680, 0x0} test_port = 0 error = <optimized out> debug = false c = <optimized out> (gdb) quit A debugging session is active.
Inferior 1 [process 31635] will be detached.
Quit anyway? (y or n) y
Preferably install dovecot-dbg package also so the gdb backtrace output will be better.
Well, I've compiled dovecot from the source, so I don't have a package. I'll try your patch on a server or two, and see if it solve the issues for them.
-- Simone Lazzaris Qcom SpA