On 1/28/25 11:53 AM, Aki Tuomi wrote:
It's maybe https://github.com/dovecot/core/commit/d3a097075afb7b5d8955978ed4a2ae99add11f88.patch

That was still giving me occasional crashes.


This seems to not crash, but I don't know that it is sensible:

--- a/src/replication/replicator/replicator-queue.c
+++ b/src/replication/replicator/replicator-queue.c
@@ -286,17 +286,19 @@ replicator_queue_handle_sync_lookups(struct replicator_queue *queue,
        lookups = array_get_modifiable(&queue->sync_lookups, &count);
        for (i = 0; i < count; ) {
                if (lookups[i].user != user)
-                       i++;
+                       {
+                               // Skip user.
+                       }
                else if (lookups[i].wait_for_next_push) {
                        /* another sync request came while user was being
                           replicated */
                        i_assert(user->priority == REPLICATION_PRIORITY_SYNC);
                        lookups[i].wait_for_next_push = FALSE;
-                       i++;
                } else {
                        array_push_back(&callbacks, &lookups[i]);
array_delete(&queue->sync_lookups, i, 1);
                }
+               i++;
        }

        array_foreach_modifiable(&callbacks, lookups)


Reactions?


-kb
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to