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 2020/05/29 03:03:12 UTC
[james-project] 05/08: JAMES-3184 Fix unstable tests causes by
concurrently message processing
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 12c8627bb9524e64b77d4d21757e37550a2ef9a0
Author: LanKhuat <kh...@gmail.com>
AuthorDate: Wed May 20 14:47:53 2020 +0700
JAMES-3184 Fix unstable tests causes by concurrently message processing
---
.../cassandra/mail/task/SolveMessageInconsistenciesService.java | 5 +----
.../mail/task/SolveMessageInconsistenciesServiceTest.java | 7 ++++---
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java
index 4f3b0b5..e25d6f3 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesService.java
@@ -474,11 +474,8 @@ public class SolveMessageInconsistenciesService {
}
private Flux<Task.Result> fixInconsistenciesInMessageId(Context context, RunningOptions runningOptions) {
- return messageIdDAO.retrieveAllMessages()
+ return throttle(messageIdDAO.retrieveAllMessages(), runningOptions)
.doOnNext(any -> context.incrementMessageIdEntries())
- .windowTimeout(runningOptions.getMessagesPerSecond(), Duration.ofSeconds(1))
- .zipWith(Flux.interval(Duration.ofSeconds(1)))
- .flatMap(Tuple2::getT1)
.flatMap(this::detectInconsistencyInMessageId)
.flatMap(inconsistency -> inconsistency.fix(context, messageIdToImapUidDAO, messageIdDAO));
}
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java
index 086d105..49ab568 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/task/SolveMessageInconsistenciesServiceTest.java
@@ -49,6 +49,7 @@ import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
+import org.testcontainers.shaded.com.google.common.collect.ImmutableList;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Schedulers;
@@ -313,9 +314,9 @@ public class SolveMessageInconsistenciesServiceTest {
cassandra.getConf()
.registerScenario(fail()
.times(1)
- .whenQueryStartsWith("INSERT INTO messageIdTable (mailboxId,uid,modSeq,messageId,flagAnswered,flagDeleted,flagDraft,flagFlagged,flagRecent,flagSeen,flagUser,userFlags) VALUES (:mailboxId,:uid,:modSeq,d2bee791-7e63-11ea-883c-95b84008f979,:flagAnswered,:flagDeleted,:flagDraft,:flagFlagged,:flagRecent,:flagSeen,:flagUser,:userFlags)"));
+ .whenQueryStartsWith("INSERT INTO messageIdTable (mailboxId,uid,modSeq,messageId,flagAnswered,flagDeleted,flagDraft,flagFlagged,flagRecent,flagSeen,flagUser,userFlags) VALUES (:mailboxId,:uid,:modSeq,:messageId,:flagAnswered,:flagDeleted,:flagDraft,:flagFlagged,:flagRecent,:flagSeen,:flagUser,:userFlags)"));
- testee.fixMessageInconsistencies(new Context(), RunningOptions.DEFAULT).block();
+ testee.fixMessageInconsistencies(new Context(), new RunningOptions(1)).block();
SoftAssertions.assertSoftly(softly -> {
softly.assertThat(imapUidDAO.retrieve(MESSAGE_ID_2, Optional.of(MAILBOX_ID)).collectList().block())
@@ -490,7 +491,7 @@ public class SolveMessageInconsistenciesServiceTest {
.times(1)
.whenQueryStartsWith("DELETE FROM messageIdTable WHERE mailboxId=:mailboxId AND uid=:uid;"));
- testee.fixMessageInconsistencies(new Context(), RunningOptions.DEFAULT).block();
+ testee.fixMessageInconsistencies(new Context(), new RunningOptions(1)).block();
SoftAssertions.assertSoftly(softly -> {
softly.assertThat(imapUidDAO.retrieveAllMessages().collectList().block())
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org