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