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 ro...@apache.org on 2019/06/18 15:49:12 UTC
[james-project] branch master updated (84160f7 -> 4c9d1c6)
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git.
from 84160f7 JAMES-2777 fix too strong expectation about task cancellation
new 25bc095 JAMES-2786 Use a channel pool for EventBus
new 6ca0d4c JAMES-2786 RabbitMQ EventBus stop consume messages under heavy load
new 263dd37 Merge remote-tracking branch 'benoit/JAMES-2759-fixes'
new 7d87b35 JAMES-2630 Use an elastic scheduler for byte reading
new 4c9d1c6 Merge remote-tracking branch 'benoit/JAMES-2630-fix'
The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../org/apache/james/mailbox/events/RabbitMQEventBus.java | 2 +-
.../apache/james/mailbox/events/RabbitMQEventBusTest.java | 14 ++++----------
.../src/main/java/org/apache/james/blob/api/Store.java | 2 ++
3 files changed, 7 insertions(+), 11 deletions(-)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[james-project] 05/05: Merge remote-tracking branch
'benoit/JAMES-2630-fix'
Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 4c9d1c6965fedc7b3b8d095d9b0de5a350a97084
Merge: 263dd37 7d87b35
Author: Raphael Ouazana <ra...@linagora.com>
AuthorDate: Tue Jun 18 17:48:54 2019 +0200
Merge remote-tracking branch 'benoit/JAMES-2630-fix'
server/blob/blob-api/src/main/java/org/apache/james/blob/api/Store.java | 2 ++
1 file changed, 2 insertions(+)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[james-project] 04/05: Merge remote-tracking branch
'benoit/JAMES-2759-fixes'
Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 263dd370f051470e1890cc8ba8c73b2f9dfd43ea
Merge: 84160f7 6ca0d4c
Author: Raphael Ouazana <ra...@linagora.com>
AuthorDate: Tue Jun 18 17:48:38 2019 +0200
Merge remote-tracking branch 'benoit/JAMES-2759-fixes'
.../org/apache/james/mailbox/events/RabbitMQEventBus.java | 2 +-
.../apache/james/mailbox/events/RabbitMQEventBusTest.java | 14 ++++----------
2 files changed, 5 insertions(+), 11 deletions(-)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[james-project] 03/05: JAMES-2786 RabbitMQ EventBus stop consume
messages under heavy load
Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 6ca0d4c25c6eb6551548574c20a5280f27597460
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jun 17 10:45:08 2019 +0700
JAMES-2786 RabbitMQ EventBus stop consume messages under heavy load
---
.../apache/james/mailbox/events/RabbitMQEventBusTest.java | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
index eb285d0..d160031 100644
--- a/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
+++ b/mailbox/event/event-rabbitmq/src/test/java/org/apache/james/mailbox/events/RabbitMQEventBusTest.java
@@ -27,7 +27,6 @@ import static org.apache.james.backend.rabbitmq.Constants.EMPTY_ROUTING_KEY;
import static org.apache.james.backend.rabbitmq.Constants.EXCLUSIVE;
import static org.apache.james.backend.rabbitmq.Constants.NO_ARGUMENTS;
import static org.apache.james.mailbox.events.EventBusConcurrentTestContract.newCountingListener;
-import static org.apache.james.mailbox.events.EventBusConcurrentTestContract.totalEventsReceived;
import static org.apache.james.mailbox.events.EventBusTestFixture.ALL_GROUPS;
import static org.apache.james.mailbox.events.EventBusTestFixture.EVENT;
import static org.apache.james.mailbox.events.EventBusTestFixture.GROUP_A;
@@ -74,7 +73,6 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.mockito.stubbing.Answer;
-import com.google.common.collect.ImmutableList;
import com.rabbitmq.client.Connection;
import reactor.core.publisher.Mono;
@@ -191,7 +189,7 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
EventBusTestFixture.MailboxListenerCountingSuccessfulExecution countingListener1 = newCountingListener();
eventBus().register(countingListener1, new EventBusTestFixture.GroupA());
- int totalGlobalRegistrations = 1; // GroupA + GroupB + GroupC
+ int totalGlobalRegistrations = 1;
int threadCount = 10;
int operationCount = 10000;
@@ -206,13 +204,9 @@ class RabbitMQEventBusTest implements GroupContract.SingleEventBusGroupContract,
// there is a moment when RabbitMQ EventBus consumed amount of messages, then it will stop to consume more
await()
.pollInterval(com.jayway.awaitility.Duration.FIVE_SECONDS)
- .timeout(com.jayway.awaitility.Duration.TEN_MINUTES).until(() -> {
- int totalEventsReceived = totalEventsReceived(ImmutableList.of(countingListener1));
- System.out.println("event received: " + totalEventsReceived);
- System.out.println("dispatching count: " + eventBus.eventDispatcher.dispatchCount.get());
- assertThat(totalEventsReceived)
- .isEqualTo(totalGlobalRegistrations * totalDispatchOperations);
- });
+ .timeout(com.jayway.awaitility.Duration.TEN_MINUTES).until(() ->
+ assertThat(countingListener1.numberOfEventCalls())
+ .isEqualTo(totalGlobalRegistrations * totalDispatchOperations));
}
@Override
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[james-project] 01/05: JAMES-2630 Use an elastic scheduler for byte
reading
Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 7d87b35510d9861b2c93306961852a4f87c45225
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Jun 14 17:58:27 2019 +0700
JAMES-2630 Use an elastic scheduler for byte reading
RabbitMQ tests got a 0.5% failure rate:
[21312fd7e0e3ffaf3f478f2e168b0c21ffaf5ecc] [ERROR] increasingBucketCountShouldAllowBrowsingAllQueueElements{CassandraCluster} Time elapsed: 0.274 s <<< ERROR!
[21312fd7e0e3ffaf3f478f2e168b0c21ffaf5ecc] java.lang.IllegalStateException: block()/blockFirst()/blockLast() are blocking, which is not supported in thread parallel-2
---
server/blob/blob-api/src/main/java/org/apache/james/blob/api/Store.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/Store.java b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/Store.java
index 07a5611..2dbcdf8 100644
--- a/server/blob/blob-api/src/main/java/org/apache/james/blob/api/Store.java
+++ b/server/blob/blob-api/src/main/java/org/apache/james/blob/api/Store.java
@@ -28,6 +28,7 @@ import org.apache.commons.lang3.tuple.Pair;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
+import reactor.core.scheduler.Schedulers;
import reactor.util.function.Tuple2;
public interface Store<T, I> {
@@ -101,6 +102,7 @@ public interface Store<T, I> {
@Override
public Mono<T> read(I blobIds) {
return Flux.fromIterable(blobIds.asMap().entrySet())
+ .publishOn(Schedulers.elastic())
.flatMapSequential(
entry -> blobStore.readBytes(entry.getValue())
.zipWith(Mono.just(entry.getKey())))
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[james-project] 02/05: JAMES-2786 Use a channel pool for EventBus
Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
rouazana pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 25bc0958880430f3b317c27d21ccb6bcdda596d0
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Jun 17 10:43:13 2019 +0700
JAMES-2786 Use a channel pool for EventBus
---
.../src/main/java/org/apache/james/mailbox/events/RabbitMQEventBus.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RabbitMQEventBus.java b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RabbitMQEventBus.java
index 784baab..dfd0294 100644
--- a/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RabbitMQEventBus.java
+++ b/mailbox/event/event-rabbitmq/src/main/java/org/apache/james/mailbox/events/RabbitMQEventBus.java
@@ -106,8 +106,8 @@ public class RabbitMQEventBus implements EventBus, Startable {
isRunning = false;
groupRegistrationHandler.stop();
keyRegistrationHandler.stop();
- channelPool.close();
sender.close();
+ channelPool.close();
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org