Index | Thread | Search

From:
Kirill A. Korinsky <kirill@korins.ky>
Subject:
mail/dovecot: fix infinity loop in replicator
To:
OpenBSD ports <ports@openbsd.org>
Cc:
Klemens Nanni <kn@openbsd.org>
Date:
Fri, 04 Oct 2024 23:57:10 +0200

Download raw body.

Thread
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