]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
director: Avoid assert-crash at deinit if user moves are still being added.
authorTimo Sirainen <timo.sirainen@dovecot.fi>
Tue, 25 Oct 2016 19:39:38 +0000 (22:39 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 26 Oct 2016 10:10:37 +0000 (13:10 +0300)
Fixes:
Panic: file user-directory.c: line 312 (user_directory_deinit): assertion failed: (array_count(&dir->iters) == 0)

src/director/main.c

index 713ad959a2987bac3e91f89714ded0f8d6a2916d..e02c1cd4e0eb48bb931d32530e7149cdc178a2c4 100644 (file)
@@ -281,9 +281,11 @@ static void main_deinit(void)
                timeout_remove(&to_proctitle_refresh);
        if (notify_conn != NULL)
                notify_connection_deinit(&notify_conn);
+       /* deinit doveadm connections before director, so it can clean up
+          its pending work, such as abort user moves. */
+       doveadm_connections_deinit();
        director_deinit(&director);
        directors_deinit();
-       doveadm_connections_deinit();
        login_connections_deinit();
        auth_connections_deinit();
        array_free(&listener_socket_types);