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@openindiana.org
https://openindiana.org/mailman/listinfo/oi-dev
_______________________________________________
oi-dev mailing list
oi-dev@openindiana.org
https://openindiana.org/mailman/listinfo/oi-dev

Reply via email to