Latest git FATAL error
Aki Tuomi
aki.tuomi at open-xchange.com
Mon Apr 26 08:23:03 EEST 2021
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 <jom at 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 <jom at 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.sirainen at 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);
More information about the dovecot
mailing list