kqueue crash on FreeBSD with 2.2.25 and OpenBSD

Edgar Pettijohn edgar at pettijohn-web.com
Sun Jul 3 14:10:04 UTC 2016


On 16-07-03 03:30:36, Timo Sirainen wrote:
> On 02 Jul 2016, at 03:30, Adam Weinberger <adamw at adamw.org> wrote:
> > 
> >>> Jul  1 10:07:27 imap dovecot: master: Panic: kevent(EV_ADD, READ, 54) failed: Bad file descriptor
> >>> 
> >>> It's not dumping core, and I get the message even with "protocols ="
> >>> 
> >>> Downgrading back to 2.2.24 fixes it. What info would be helpful for me to provide here?
> >> 
> >> gdb backtrace: http://dovecot.org/bugreport.html#coredumps
> >> 
> > 
> > Fuller logs attached. Thanks for your help, Timo.
> > 
> > #6  0x2815b23a in i_panic (format=0x281ccf7a "kevent(EV_ADD, READ, %d) failed: %m") at failures.c:275
> > #7  0x28185e10 in io_loop_handle_add (io=0x288843a0) at ioloop-kqueue.c:67
> > #8  0x281815a8 in io_add_file (fd=56, condition=IO_READ, source_linenum=244, callback=0x2818a7d0 <signal_read>, context=0x0) at ioloop.c:59
> > #9  0x281813a6 in io_add (fd=56, condition=IO_READ, source_linenum=244, callback=0x2818a7d0 <signal_read>, context=0x0) at ioloop.c:81
> > #10 0x2818a666 in lib_signals_set_handler (signo=1, flags=3, handler=0x804e6c0 <sig_settings_reload>, context=0x0) at lib-signals.c:243
> > #11 0x0804e129 in main_init (set=0x2881d098) at main.c:518
> > #12 0x0804d562 in main (argc=3, argv=0xffffae08) at main.c:890
> 
> Weird. I haven't touched anything even close to that. Also kqueue works on my OSX. The only thing that comes to my mind is https://github.com/dovecot/core/commit/fde7b8a03bf91cfa5bb7ca3e84545386243fa0d2
> 
> Does it happen to work if you use the attached patch?
> 

Looks like its an issue on OpenBSD -current as well.

This GDB was configured as "i386-unknown-openbsd6.0"...
Core was generated by `dovecot'.
Program terminated with signal 6, Aborted.
Loaded symbols for /home/edgar/sbin/dovecot
Reading symbols from /home/edgar/lib/dovecot/libdovecot.so.0.0...done.
Loaded symbols for /home/edgar/lib/dovecot/libdovecot.so.0.0
Reading symbols from /usr/lib/libc.so.88.0...done.
Loaded symbols for /usr/lib/libc.so.88.0
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
#0  0x0d8ca24f in thrkill () at <stdin>:2
2       <stdin>: No such file or directory.
        in <stdin>
(gdb) bt
#0  0x0d8ca24f in thrkill () at <stdin>:2
#1  0x0d8cd691 in *_libc_raise (s=6) at /usr/src/lib/libc/gen/raise.c:37
#2  0x0d8cb8fc in *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:52
#3  0x092d5a2f in default_fatal_finish (type=Variable "type" is not available.
) at failures.c:201
#4  0x092d5ae4 in i_syslog_fatal_handler (ctx=0xcf7dcdcc, 
    format=0x2925f1d4 "kevent(EV_ADD, READ, %d) failed: %m", args=0xcf7dcdf4 "<")
    at failures.c:418
#5  0x17bd6f68 in master_fatal_callback (ctx=0xcf7dcdcc, 
    format=0x2925f1d4 "kevent(EV_ADD, READ, %d) failed: %m", args=0xcf7dcdf4 "<")
    at main.c:167
#6  0x092d4ea6 in i_panic (format=Could not find the frame base for "i_panic".
) at failures.c:275
#7  0x092de2b9 in io_loop_handle_add (io=Variable "io" is not available.
) at ioloop-kqueue.c:67
#8  0x092df3e2 in io_add_file (fd=60, condition=IO_READ, source_linenum=244, 
    callback=0x92efe80 <signal_read>, context=0x0) at ioloop.c:59
#9  0x092df491 in io_add (fd=60, condition=IO_READ, source_linenum=244, 
    callback=0x92efe80 <signal_read>, context=0x0) at ioloop.c:81
#10 0x092f0283 in lib_signals_set_handler (signo=1, flags=3, 
    handler=0x17bd5d30 <sig_settings_reload>, context=0x0) at lib-signals.c:243
#11 0x17bd58fb in main_init (set=0x86b34098) at main.c:518
#12 0x17bd6878 in main (argc=Cannot access memory at address 0x0
) at main.c:890
Current language:  auto; currently asm
(gdb) bt full
#0  0x0d8ca24f in thrkill () at <stdin>:2
No locals.
#1  0x0d8cd691 in *_libc_raise (s=6) at /usr/src/lib/libc/gen/raise.c:37
No locals.
#2  0x0d8cb8fc in *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:52
        mask = 4294967263
        sa = {__sigaction_u = {__sa_handler = 0xcf7dcd38, __sa_sigaction = 0xcf7dcd38}, 
  sa_mask = 690456752, sa_flags = 1}
#3  0x092d5a2f in default_fatal_finish (type=Variable "type" is not available.
) at failures.c:201
        backtrace = Variable "backtrace" is not available.
(gdb)

I'm happy to test patches, etc.
-- 
Edgar Pettijohn


More information about the dovecot mailing list