From: Brad Smith Subject: Re: mail/dovecot: fix infinity loop in replicator To: "Kirill A. Korinsky" , OpenBSD ports Cc: Klemens Nanni Date: Fri, 4 Oct 2024 18:39:40 -0400 On 2024-10-04 5:57 p.m., 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. Add a comment at the top of the patch that says.. -- replicator: fixed infinity loop on sync replication https://github.com/dovecot/core/pull/223 -- And we're good. Thanks. > 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--; > + } > + } > + > >