According to man page, the only way it can return EINVAL (22) is either bad filter, or bad timeout. I can't see how the filter would be bad, so I'm guessing ts must be bad. Unfortunately I forgot to ask for it, so I am going to have to ask you run it again and run
p ts
if that's valid, then the only thing that can be bad if the file descriptor 23.
Aki
On October 23, 2016 at 7:42 PM Larry Rosenman larryrtx@gmail.com wrote:
ok, gdb7 works: (gdb) fr 6 #6 0x00000008011a3e49 in io_loop_handler_run_internal (ioloop=0x801c214e0) at ioloop-kqueue.c:131 131 i_panic("kevent(): %m"); (gdb) p errno $1 = 22 (gdb) p ret $2 = -1 (gdb) p *ioloop $3 = {prev = 0x801c21080, cur_ctx = 0x0, io_files = 0x801c4f980, next_io_file = 0x0, timeouts = 0x801c19e60, timeouts_new = {arr = {buffer = 0x801c5ac80, element_size = 8}, v = 0x801c5ac80, v_modifiable = 0x801c5ac80}, handler_context = 0x801c19e80, notify_handler_context = 0x0, max_fd_count = 0, time_moved_callback = 0x800d53bb0
, next_max_time = 1477240784, ioloop_wait_usecs = 29863, io_pending_count = 1, running = 1, iolooping = 1} (gdb) p *ctx $4 = {kq = 22, deleted_count = 0, events = {arr = {buffer = 0x801c5acc0, element_size = 32}, v = 0x801c5acc0, v_modifiable = 0x801c5acc0}} (gdb) p *events $5 = {ident = 23, filter = -1, flags = 0, fflags = 0, data = 8, udata = 0x801c4f980} (gdb) On Sun, Oct 23, 2016 at 11:27 AM, Larry Rosenman larryrtx@gmail.com wrote:
grrr.
/home/mrm $ gdb /usr/local/bin/doveadm GNU gdb 6.1.1 [FreeBSD] Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... (gdb) run -D -vvvvvv index * Starting program: /usr/local/bin/doveadm -D -vvvvvv index *
Program received signal SIGTRAP, Trace/breakpoint trap. Cannot remove breakpoints because program is no longer writable. It might be running in another process. Further execution is probably impossible. 0x0000000800624490 in ?? () (gdb)
Ideas?
On Sun, Oct 23, 2016 at 11:14 AM, Aki Tuomi aki.tuomi@dovecot.fi wrote:
Hi,
can you run doveadm in gdb, wait for it to crash, and then go to frame 6 ( io_loop_handler_run_internal) and run
p errno p ret p *ioloop p *ctx p *events
Sorry but the crash doesn't make enough sense yet to me, we need to determine what the invalid parameter is.
Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 (c) E-Mail: larryrtx@gmail.com US Mail: 17716 Limpia Crk, Round Rock, TX 78664-7281
-- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 (c) E-Mail: larryrtx@gmail.com US Mail: 17716 Limpia Crk, Round Rock, TX 78664-7281
-- Larry Rosenman http://www.lerctr.org/~ler Phone: +1 214-642-9640 (c) E-Mail: larryrtx@gmail.com US Mail: 17716 Limpia Crk, Round Rock, TX 78664-7281