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

Reply via email to