Can you provide any details on this instability? Aki
On April 27, 2021 7:58:01 PM UTC, Joan Moreau <j...@grosjo.net> wrote: >Ok, a third regression is that it becomes highly unstable with the >patch >you sent > >I had to get back to 2.3.14 > >On 2021-04-27 17:07, Joan Moreau wrote: > >> Indeed, latest git works much better :) >> >> On 2021-04-27 05:58, Aki Tuomi wrote: >> Can you try with latest git? We did some improvements on the systemd >> configure parts. >> >> Aki >> >> On 26/04/2021 23:32 Joan Moreau <j...@grosjo.net> wrote: >> >> Looking at config.log, there is #define HAVE_LIBSYSTEMD 1 >> But "Type=notify" does not appear >> My systemd is version 248 >> >> On 2021-04-26 12:05, Joan Moreau wrote: I have >> # sudo systemctl status dovecot >> ● dovecot.service - Dovecot IMAP/POP3 email server >> Loaded: loaded (/usr/lib/systemd/system/dovecot.service; enabled; >> vendor preset: disabled) >> Active: active (running) since Sun 2021-04-25 20:13:25 UTC; 14h ago >> Docs: man:dovecot(1) >> https://doc.dovecot.org/ >> Main PID: 2559364 (dovecot) >> Tasks: 28 (limit: 76912) >> Memory: 1.0G >> CPU: 7min 18.342s >> CGroup: /system.slice/dovecot.service >> ├─2559364 /usr/sbin/dovecot -F >> ├─2559366 dovecot/imap-login >> ├─2559367 dovecot/anvil [11 connections] >> ├─2559368 dovecot/log >> >> On 2021-04-26 08:32, Aki Tuomi wrote: I don't know then. It works for > >> me and I just tried it again. The only reason it would fail would be >> that HAVE_LIBSYSTEMD is not defined, so it would not be using >> libsystemd for notify support. >> >> $ sudo systemctl status dovecot >> ● dovecot.service - Dovecot IMAP/POP3 email server >> Loaded: loaded (/lib/systemd/system/dovecot.service; disabled; vendor > >> preset: enabled) >> Active: active (running) since Mon 2021-04-26 10:30:02 EEST; 2s ago >> Docs: man:dovecot(1) >> https://doc.dovecot.org/ >> Main PID: 30213 (dovecot) >> Status: "v2.4.devel (98a1cca054) running" >> Tasks: 4 (limit: 4701) >> Memory: 3.3M >> CGroup: /system.slice/dovecot.service >> ├─30213 /home/cmouse/dovecot/sbin/dovecot -F >> ├─30214 dovecot/anvil >> ├─30215 dovecot/log >> └─30216 dovecot/config >> >> You can tell from the "Status" line that it's using Type=notify. >> >> Aki >> >> On 26/04/2021 10:29 Joan Moreau <j...@grosjo.net> wrote: >> >> Yes, I do run autogen.sh after every "git pull" >> >> On 2021-04-26 08:21, Aki Tuomi wrote: The current autoconf code is >bit >> buggy, but if you do indeed have libsystemd-dev installed it should >do >> the right thing and will work with systemd even if you have >> Type=notify. >> >> This has been actually tested, so if it's not working, then something > >> else is wrong. >> >> Did you remember to run ./autogen.sh after pulling from git to make >> sure you get new configure script? >> >> Aki >> >> On 26/04/2021 10:11 Joan Moreau <j...@grosjo.net> wrote: >> >> Yes systemd is installed (and the "dev" files as well) >> >> On 2021-04-26 06:23, Aki Tuomi wrote: This is because you are not >> compiling with libsystemd-dev installed. I guess we need to make some > >> service template that use type simple when you don't use libsystemd. >> >> Aki >> >> On 25/04/2021 22:53 Joan Moreau <j...@grosjo.net> wrote: >> >> Yes, it seems fixed with this patch :) >> >> Another bug with git, is the "type=" in systemd is switched from >> "simple" to "notify". The later does not work and reverting to >"simple" >> does work >> >> On 2021-04-25 17:53, Aki Tuomi wrote: On 24/04/2021 21:56 Joan Moreau > >> <j...@grosjo.net> wrote: >> >> chroot= does not resolve the issue >> I have "chroot = login" in my conf >> >> Thanks! >> >> The chroot was needed to get the core dump. >> >> Can you try if this does fix the crash? >> >> Aki >> >> From 1df4e02cbff710ce8938480b07a5690e37f661f6 Mon Sep 17 00:00:00 >2001 >> From: Timo Sirainen <timo.sirai...@open-xchange.com> >> Date: Fri, 23 Apr 2021 16:43:36 +0300 >> Subject: [PATCH] login-common: Fix handling destroyed_clients linked >> list >> >> The client needs to be removed from destroyed_clients linked list >> before >> it's added to client_fd_proxies linked list. >> >> Broken by 1c622cdbe08df2f642e28923c39894516143ae2a >> --- >> src/login-common/client-common.c | 11 +++++++---- >> 1 file changed, 7 insertions(+), 4 deletions(-) >> >> diff --git a/src/login-common/client-common.c >> b/src/login-common/client-common.c >> index bdb6e9c798..1d264d9f75 100644 >> --- a/src/login-common/client-common.c >> +++ b/src/login-common/client-common.c >> @@ -289,8 +289,9 @@ void client_disconnect(struct client *client, >const >> char *reason, >> /* Login was successful. We may now be proxying the connection, >> so don't disconnect the client until client_unref(). */ >> if (client->iostream_fd_proxy != NULL) { >> + i_assert(!client->fd_proxying); >> client->fd_proxying = TRUE; >> - i_assert(client->prev == NULL && client->next == NULL); >> + DLLIST_REMOVE(&destroyed_clients, client); >> DLLIST_PREPEND(&client_fd_proxies, client); >> client_fd_proxies_count++; >> } >> @@ -307,8 +308,9 @@ void client_destroy(struct client *client, const >> char *reason) >> >> if (last_client == client) >> last_client = client->prev; >> - /* remove from clients linked list before it's added to >> - client_fd_proxies. */ >> + /* move to destroyed_clients linked list before it's potentially >> + added to client_fd_proxies. */ >> + i_assert(!client->fd_proxying); >> DLLIST_REMOVE(&clients, client); >> DLLIST_PREPEND(&destroyed_clients, client); >> >> @@ -409,13 +411,14 @@ bool client_unref(struct client **_client) >> DLLIST_REMOVE(&client_fd_proxies, client); >> i_assert(client_fd_proxies_count > 0); >> client_fd_proxies_count--; >> + } else { >> + DLLIST_REMOVE(&destroyed_clients, client); >> } >> i_stream_unref(&client->input); >> o_stream_unref(&client->output); >> i_close_fd(&client->fd); >> event_unref(&client->event); >> >> - DLLIST_REMOVE(&destroyed_clients, client); >> i_free(client->proxy_user); >> i_free(client->proxy_master_user); >> i_free(client->virtual_user);