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

Stephan Althaus Stephan.Althaus at Duedinghausen.eu
Thu Feb 10 20:33:55 UTC 2022


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

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


More information about the oi-dev mailing list