You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/06/26 03:28:50 UTC

[james-project] 10/28: JAMES-2794 Dequeuer should rely on concatMap and not flatMap

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit aad4442b6cb902ea216434fd644d6615661ead78
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Tue Jun 18 14:16:33 2019 +0700

    JAMES-2794 Dequeuer should rely on concatMap and not flatMap
    
    flatMap can lead to event reordering (8% occurrence) which causes
    browseAndDequeueShouldCombineWellWhenDifferentSlices to be flacky.
    
    Note that filtering out deleted emails actually increased the inconsistency
    window
---
 .../src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java       | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
index 95f13ee..7ed8d3e 100644
--- a/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
+++ b/server/queue/queue-rabbitmq/src/main/java/org/apache/james/queue/rabbitmq/Dequeuer.java
@@ -89,8 +89,8 @@ class Dequeuer {
     }
 
     Flux<? extends MailQueue.MailQueueItem> deQueue() {
-        return flux.flatMap(this::loadItem)
-            .flatMap(this::filterIfDeleted);
+        return flux.concatMap(this::loadItem)
+            .concatMap(this::filterIfDeleted);
     }
 
     private Mono<RabbitMQMailQueueItem> filterIfDeleted(RabbitMQMailQueueItem item) {


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org