]> 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)
committerGitLab <gitlab@git.dovecot.net>
Wed, 26 Oct 2016 09:56:27 +0000 (12:56 +0300)
Fixes:
Panic: file user-directory.c: line 312 (user_directory_deinit): assertion failed: (array_count(&dir->iters) == 0)

src/director/main.c

index c4d479107de3e28e269c033463e0f0dc6d031bc5..c54434f9c045eeb624e010e9bda7adb14e2f508a 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);