Index | Thread | Search

From:
Stuart Henderson <stu@spacehopper.org>
Subject:
Re: mail/dovecot: fix infinity loop in replicator
To:
"Kirill A. Korinsky" <kirill@korins.ky>
Cc:
OpenBSD ports <ports@openbsd.org>, Klemens Nanni <kn@openbsd.org>, Brad <brad@comstyle.com>
Date:
Fri, 4 Oct 2024 23:16:49 +0100

Download raw body.

Thread
CC'ing maintainer. I think it makes semse.

On 2024/10/04 23:57, Kirill A. Korinsky wrote:
> ports@,
> 
> Here a patch which fixed an infinity loop inside dovecot replicator when it
> is used with any value of replication_sync_timeout.
> 
> This patch was backported to upstream as
> https://github.com/dovecot/core/pull/223 but replicator was removed from the
> next release and I doubt that it will be merged.
> 
> Anyway, I'm using it for a more than a week and quite happy with it.
> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/mail/dovecot/Makefile,v
> retrieving revision 1.318
> diff -u -p -r1.318 Makefile
> --- Makefile	16 Aug 2024 10:56:01 -0000	1.318
> +++ Makefile	4 Oct 2024 21:53:30 -0000
> @@ -11,6 +11,7 @@ COMMENT-postgresql= PostgreSQL authentic
>  V_MAJOR=	2.3
>  V_DOVECOT=	2.3.21.1
>  EPOCH=		0
> +REVISION=	0
>  
>  DISTNAME=	dovecot-${V_DOVECOT}
>  PKGNAME=	dovecot-${V_DOVECOT}
> Index: patches/patch-src_replication_replicator_replicator-queue_c
> ===================================================================
> RCS file: patches/patch-src_replication_replicator_replicator-queue_c
> diff -N patches/patch-src_replication_replicator_replicator-queue_c
> --- /dev/null	1 Jan 1970 00:00:00 -0000
> +++ patches/patch-src_replication_replicator_replicator-queue_c	4 Oct 2024 21:53:30 -0000
> @@ -0,0 +1,11 @@
> +Index: src/replication/replicator/replicator-queue.c
> +--- src/replication/replicator/replicator-queue.c.orig
> ++++ src/replication/replicator/replicator-queue.c
> +@@ -333,6 +333,7 @@ replicator_queue_handle_sync_lookups(struct replicator
> + 		} else {
> + 			array_push_back(&callbacks, &lookups[i]);
> + 			array_delete(&queue->sync_lookups, i, 1);
> ++			count--;
> + 		}
> + 	}
> + 
> 
> 
> -- 
> wbr, Kirill
>