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

Friedrich Kink friedrich.kink at fkink.de
Sun Feb 13 18:42:25 UTC 2022


Hi all,

thanks a lot for all hints and discussion.

I still do not have a finally correct answer to my problem. But I found 
some interesting things about my dovecot installation. First it is 
running without any problem once built with --with-ioloop=poll. What I 
found during my further investigations on this topic is that with epoll 
I get regular log entries like (every minute):

Feb  9 22:36:42 mail dovecot: [ID 702911 mail.crit] anvil: Fatal: 
epoll_create(): No such file or directory
Feb  9 22:36:42 mail dovecot: [ID 702911 mail.error] master: Error: 
service(anvil): command startup failed, throttling for 60.000 secs
Feb  9 22:36:42 mail dovecot: [ID 702911 mail.error] imap-login: Error: 
read(anvil) failed: EOF

Built with poll I don't get this log entries. anvil is a default service 
which I did not change at all. That means anvil is running configured by 
default with chroot=empty. According to dovecot documentation:

|doveadm who|and some other doveadm commands connect to anvil’s UNIX 
listener and request its state.

And this works too without problems in my environment, which is another 
proof that everything is ok. My current conclusion is that executing 
/usr/libexec/dovecot/anvil is not working because it is not meant to run 
standalone. Of course this should be covered, too. As already mentioned 
my dovecot setup is running within a separate zone. But I've not 
explicitly configured any chroot setting.

So, definitely dovecot refuses to work correctly if built with epoll. 
But of course all my tests are by far not exhaustive but I'm pretty 
confident that the package I built is doing its job flawlessly.

cheers,

   Fritz

PS: further comments of course welcome ;-).

Am 09.02.2022 um 20:45 schrieb Friedrich Kink via oi-dev:
>
> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openindiana.org/pipermail/oi-dev/attachments/20220213/686f39b8/attachment-0001.html>


More information about the oi-dev mailing list