[oi-dev] /usr/libexec/dovecot/anvil crashes immediately

Stephan Althaus Stephan.Althaus at Duedinghausen.eu
Thu Feb 10 20:48:51 UTC 2022


On 2/10/22 21:33, Stephan Althaus wrote:
> On 2/9/22 21:25, Till Wegmueller wrote:
>> Hello Fritz
>>
>> It talks about a failed code assertion so something went out of 
>> expected bounds. Can you check if doevecot wrote something more 
>> usefull to syslog?
>>
>> Here it just says "file %s: line %d (%s): assertion failed: (%s)"
>> But not the actual assertion failure message.
>>
>> The one below that is
>> #8  0x00007ffef056048b in io_loop_handle_add (io=0x42d7c0) at 
>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/ioloop-poll.c:94
>>         ctx = 0x423180
>>         condition = IO_READ
>>         old_count = 3221223792
>>         index = 0
>>         old_events = 59
>>         fd = 4
>>         __func__ = "io_loop_handle_add"
>>
>> But I can't tell if thats the panic or why dovecots panics here.
>>
>> -Till
>>
>> On 09.02.22 16:45, Friedrich Kink via oi-dev wrote:
>>> Sent this already to dovecot mailinglist without response so far. 
>>> Maybe someone reading this list can help. Unfortunately it did not 
>>> show up during the test run of the package and I used earlier 
>>> versions without this problem.
>>>
>>>
>>> Dear list,
>>>
>>> I built a dovecot package for openindiana (which is a Solaris 
>>> derivative) from latest version 2.3.18. Everything compiles and 
>>> builds fine without any issue. Even subsequent installation and 
>>> startup of main dovecot process works as expected. But execution of 
>>> /usr/libexec/dovecot/anvil immediately crashes. To get some more 
>>> meaningful backtrace I compiled with -g. Below some facts of my 
>>> environment and a backtrace. Maybe some of you are more familiar 
>>> with this kind of issue as I, and can give some hint or share ideas 
>>> how to nail down the problem. Or can it be a configuration issue? 
>>> BTW it is running in a so-called zone. And former versions, I don't 
>>> know exactly but I believe up to 2.3.17, did not show this crash.
>>>
>>> gcc --version
>>> gcc (OpenIndiana 7.5.0-il-0) 7.5.0
>>>
>>> Configure parameters:
>>>
>>> gcc_OPT = -g
>>>
>>> CONFIGURE_OPTIONS+= --sysconfdir=/etc \
>>>                      --localstatedir=/var \
>>>                      --with-gssapi=plugin \
>>>                      --with-ldap=plugin \
>>>                      --with-sql=plugin \
>>>                      --with-lua=plugin \
>>>                      --with-ssl=openssl \
>>>                      --with-ioloop=poll \
>>>                      --with-notify=none \
>>>                      --with-sodium \
>>>                      --with-mysql \
>>>                      --with-pgsql \
>>>                      --enable-static=no \
>>>                      --without-systemd \
>>>                      SSL_CFLAGS=-I/usr/openssl/1.1/include \
>>>                      SSL_LIBS="-L/usr/openssl/1.1/lib/amd64 -lssl 
>>> -lcrypto" \
>>>                      LDFLAGS="-lldap_r"
>>>
>>> Backtrace:
>>>
>>> (gdb) bt full
>>> #0  0x00007fff5d2e6f2a in _lwp_kill () from /lib/64/libc.so.1
>>> No symbol table info available.
>>> #1  0x00007fff5d2dd7f0 in thr_kill () from /lib/64/libc.so.1
>>> No symbol table info available.
>>> #2  0x00007fff5d27ae7e in raise () from /lib/64/libc.so.1
>>> No symbol table info available.
>>> #3  0x00007fff5d254ad8 in abort () from /lib/64/libc.so.1
>>> No symbol table info available.
>>> #4  0x00007ffef05367c0 in default_fatal_finish (type=LOG_TYPE_PANIC, 
>>> status=0) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/failures.c:459
>>>          backtrace = 0x4178b8 
>>> "/usr/lib/amd64/dovecot/libdovecot.so.0.0.0'backtrace_append_libc+0x4c 
>>> [0x7ffef0522042] -> 
>>> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'backtrace_append+0x18 
>>> [0x7ffef05221c5] -> /usr/lib/amd64/dovecot/li"...
>>>          recursed = 0
>>> #5  0x00007ffef0536827 in fatal_handler_real (ctx=0x7fffbffff820, 
>>> format=0x7ffef05d8730 "file %s: line %d (%s): assertion failed: 
>>> (%s)", args=0x7fffbffff850)
>>>      at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/failures.c:471
>>>          status = 0
>>> #6  0x00007ffef0536871 in default_fatal_handler (ctx=0x7fffbffff820, 
>>> format=0x7ffef05d8730 "file %s: line %d (%s): assertion failed: 
>>> (%s)", args=0x7fffbffff850)
>>>      at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/failures.c:479
>>> No locals.
>>> #7  0x00007ffef0536aed in i_panic (format=0x7ffef05d8730 "file %s: 
>>> line %d (%s): assertion failed: (%s)") at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/failures.c:524
>>>          ctx = {type = LOG_TYPE_PANIC, exit_status = 0, timestamp = 
>>> 0x0, timestamp_usecs = 0, log_prefix = 0x0, log_prefix_type_pos = 0}
>>>          args = {{gp_offset = 8, fp_offset = 48, overflow_arg_area = 
>>> 0x7fffbffff930, reg_save_area = 0x7fffbffff870}}
>>> #8  0x00007ffef056048b in io_loop_handle_add (io=0x42d7c0) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/ioloop-poll.c:94
>>>          ctx = 0x423180
>>>          condition = IO_READ
>>>          old_count = 3221223792
>>>          index = 0
>>>          old_events = 59
>>>          fd = 4
>>>          __func__ = "io_loop_handle_add"
>>> #9  0x00007ffef055c1ab in io_add_file (ioloop=0x423070, fd=4, 
>>> condition=IO_READ, source_filename=0x7ffef05d9f48 
>>> "/usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/lib-signals.c",
>>>      source_linenum=192, callback=0x7ffef05698f4 <signal_read>, 
>>> context=0x0) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/ioloop.c:72
>>>          io = 0x42d7c0
>>>          __func__ = "io_add_file"
>>> #10 0x00007ffef055c27a in io_add_to (ioloop=0x423070, fd=4, 
>>> condition=IO_READ, source_filename=0x7ffef05d9f48 
>>> "/usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/lib-signals.c",
>>>      source_linenum=192, callback=0x7ffef05698f4 <signal_read>, 
>>> context=0x0) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/ioloop.c:94
>>>          io = 0x7ffef0609aa0 <static_system_pool>
>>>          __func__ = "io_add_to"
>>> #11 0x00007ffef0569289 in lib_signals_init_io (l=0x420a00) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/lib-signals.c:192
>>>          __func__ = "lib_signals_init_io"
>>> #12 0x00007ffef056933c in lib_signals_ioloop_ref (ioloop=0x423070) 
>>> at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/lib-signals.c:205
>>>          l = 0x420a00
>>> #13 0x00007ffef0569507 in signal_handler_switch_ioloop (h=0x4209c0) 
>>> at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/lib-signals.c:232
>>> No locals.
>>> #14 0x00007ffef056a10a in lib_signals_set_handler (signo=2, 
>>> flags=LIBSIG_FLAG_DELAYED, handler=0x7ffef0475e74 <sig_die>, 
>>> context=0x422f20)
>>>      at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib/lib-signals.c:520
>>>          h = 0x4209c0
>>>          __func__ = "lib_signals_set_handler"
>>> #15 0x00007ffef0477596 in master_service_init_finish 
>>> (service=0x422f20) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/lib-master/master-service.c:668
>>>          sigint_flags = LIBSIG_FLAG_DELAYED
>>>          st = {st_dev = 79, st_ino = 4209307, st_mode = 1, st_nlink 
>>> = 79, st_uid = 4218704, st_gid = 0, st_rdev = 17179869185, st_size = 
>>> 4337776, st_atim = {tv_sec = 140736414612384, tv_nsec = 1},
>>>            st_mtim = {tv_sec = 0, tv_nsec = 8388608}, st_ctim = 
>>> {tv_sec = 0, tv_nsec = 0}, st_blksize = 4378928, st_blocks = 255, 
>>> st_fstype = " /B\000\000\000\000\000 /B\000\000\000\000"}
>>>          __func__ = "master_service_init_finish"
>>> #16 0x0000000000403cce in main (argc=1, argv=0x7fffbffffc38) at 
>>> /usr/src/myoi-userland/components/mail/dovecot/dovecot-2.3.18/src/anvil/main.c:80 
>>>
>>>          service_flags = (MASTER_SERVICE_FLAG_UPDATE_PROCTITLE | 
>>> MASTER_SERVICE_FLAG_DONT_SEND_STATS)
>>>          error = 0x7fffbffffc10 " \374\377\277\377\177"
>>>
>>> Thanks a lot for any help,
>>>
>>>    Fritz
>>>
>>>
>>> _______________________________________________
>>> oi-dev mailing list
>>> oi-dev at openindiana.org
>>> https://openindiana.org/mailman/listinfo/oi-dev
>>
>> _______________________________________________
>> oi-dev mailing list
>> oi-dev at openindiana.org
>> https://openindiana.org/mailman/listinfo/oi-dev
>
> Hello Fritz!
>
> o support your investigation, I tried mdb and it says
>
> mdb: target performed exec of /usr/libexec/dovecot/anvil
> *Panic: epoll_ctl(add, 4) failed: Not owner (fd doesn't support epoll)*
> Error: Raw backtrace: 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'backtrace_append+0x3f 
> [0x7fff7fbac40f] -> 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'backtrace_get+0x1f 
> [0x7fff7fbac55f] -> 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'fatal_handler_real+0x163 
> [0x7fff7fbc24e3] -> 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'0x162521 [0x7fff7fbc2521] 
> -> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'i_fatal+0x0 
> [0x7fff7fbc3644] -> 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'io_loop_handle_add+0x1e3 
> [0x7fff7fbe1153] -> 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'io_add_to+0xe0 
> [0x7fff7fbdea40] -> 
> /usr/lib/amd64/dovecot/libdovecot.so.0.0.0'io_add+0x26 
> [0x7fff7fbdeb26] -> /usr/libexec/dovecot/anvil'main+0x11a [0x4036ca] 
> -> /usr/libexec/dovecot/anvil'_start_crt+0x87 [0x4033d7] -> 
> /usr/libexec/dovecot/anvil'_start+0x18 [0x403338]
>
> That epoll_ctl() would then be in*core/src/lib/ioloop-epoll.c* 
> function*void io_loop_handle_add(struct io_file *io)*
>
>
> The question is which or what type of file is that..
>
> open("/dev/poll", O_RDWR)                       = 4
> ioctl(4, DP_EPOLLCOMPAT, 0x00000000)            = 0
> fcntl(4, F_GETFD, 0x00000000)                   = 0
> fcntl(4, F_SETFD, 0x00000001)                   = 0
> write(4, "04\0\0\01B\0\0\0 p ! B\0".., 16)      Err#90 ELOOP
> mmap(0x00010000, 65536, PROT_READ|PROT_WRITE|PROT_EXEC, 
> MAP_PRIVATE|MAP_ANON|MAP_ALIGN, 4294967295, 0) = 0x7FFFAF4D0000
> Panic: epoll_ctl(add, 4) failed: Invalid argument
>
>
> And now, what is wrong with this? I don't know :-(
>
>
> Other files are opened, too:
>
> # grep -i open truss.txt
> open("/var/ld/64/ld.config", O_RDONLY)          Err#2 ENOENT
> open("/lib/64/libc.so.1", O_RDONLY)             = 3
> open("/usr/lib/amd64/dovecot/libdovecot.so.0", O_RDONLY) = 3
> open("/lib/64/libsocket.so.1", O_RDONLY)        = 3
> open("/lib/64/libnsl.so.1", O_RDONLY)           = 3
> open("/dev/null", O_WRONLY)                     = 3
> open("/var/ld/64/ld.config", O_RDONLY)          Err#2 ENOENT
> open("/lib/64/libc.so.1", O_RDONLY)             = 3
> open("/usr/lib/amd64/dovecot/libdovecot.so.0", O_RDONLY) = 3
> open("/lib/64/libsocket.so.1", O_RDONLY)        = 3
> open("/lib/64/libnsl.so.1", O_RDONLY)           = 3
> open("/dev/null", O_WRONLY)                     = 3
> open("/dev/poll", O_RDWR)                       = 6
> open("/usr/lib/amd64/dovecot/settings", O_RDONLY|O_NDELAY|O_LARGEFILE) 
> Err#2 ENOENT
> open("/etc/dovecot/dovecot.conf", O_RDONLY)     = 7
> open("/usr/share/dovecot/protocols.d/", O_RDONLY|O_NDELAY|O_LARGEFILE) 
> Err#2 ENOENT
> open("/etc/dovecot/conf.d/", O_RDONLY|O_NDELAY|O_LARGEFILE) = 8
> open("/etc/dovecot/conf.d/99-mail-stack-delivery.conf", O_RDONLY) = 8
> open("/etc/dovecot/conf.d/90-sieve.conf", O_RDONLY) = 9
> open("/etc/dovecot/conf.d/90-sieve-extprograms.conf", O_RDONLY) = 10
> open("/etc/dovecot/conf.d/90-quota.conf", O_RDONLY) = 11
> open("/etc/dovecot/conf.d/90-plugin.conf", O_RDONLY) = 12
> open("/etc/dovecot/conf.d/90-acl.conf", O_RDONLY) = 13
> open("/etc/dovecot/conf.d/20-pop3.conf", O_RDONLY) = 14
> open("/etc/dovecot/conf.d/20-managesieve.conf", O_RDONLY) = 15
> open("/etc/dovecot/conf.d/20-imap.conf", O_RDONLY) = 16
> open("/etc/dovecot/conf.d/15-mailboxes.conf", O_RDONLY) = 17
> open("/etc/dovecot/conf.d/15-lda.conf", O_RDONLY) = 18
> open("/etc/dovecot/conf.d/10-tcpwrapper.conf", O_RDONLY) = 19
> open("/etc/dovecot/conf.d/10-ssl.conf", O_RDONLY) = 20
> open("/etc/dovecot/conf.d/10-master.conf", O_RDONLY) = 21
> open("/etc/dovecot/conf.d/10-mail.conf", O_RDONLY) = 22
> open("/etc/dovecot/conf.d/10-logging.conf", O_RDONLY) = 23
> open("/etc/dovecot/conf.d/10-director.conf", O_RDONLY) = 24
> open("/etc/dovecot/conf.d/10-auth.conf", O_RDONLY) = 25
> open("/etc/dovecot/conf.d/auth-system.conf.ext", O_RDONLY) = 26
> open("/var/ld/64/ld.config", O_RDONLY)          Err#2 ENOENT
> open("/lib/64/libc.so.1", O_RDONLY)             = 3
> open("/usr/lib/amd64/dovecot/libdovecot.so.0", O_RDONLY) = 3
> open("/lib/64/libsocket.so.1", O_RDONLY)        = 3
> open("/lib/64/libnsl.so.1", O_RDONLY)           = 3
> open("/dev/null", O_WRONLY)                     = 3
> open("/dev/poll", O_RDWR)                       = 4
> open("/proc/self/as", O_RDONLY)                 = 5
>
> ...
>
>
> Greetings,
>
> Stephan
>
>
>
> _______________________________________________
> oi-dev mailing list
> oi-dev at openindiana.org
> https://openindiana.org/mailman/listinfo/oi-dev

Hello Fritz!

anvil from package CSWdovecot in version 2.3.17 has errors, too

write(2, " E r r o r :   f d _ r e".., 62)      = 62
pollsys(0x08073890, 2, 0x00000000, 0x00000000)  = 1
recvmsg(4, 0x08047BE0, 32768)                   Err#95 ENOTSOCK
write(2, " E r r o r :   f d _ r e".., 62)      = 62
pollsys(0x08073890, 2, 0x00000000, 0x00000000)  = 1
recvmsg(4, 0x08047BE0, 32768)                   Err#95 ENOTSOCK


Greetings,

Stephan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openindiana.org/pipermail/oi-dev/attachments/20220210/cadd2d64/attachment-0001.html>


More information about the oi-dev mailing list