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/12/18 11:29:50 UTC
[james-project] 03/06: JAMES-2993 Not stopping MemoryTaskManager
results in deadlock
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 44175bfbbfabd50eee4d7db79b906be216796f7f
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Mon Dec 16 19:27:12 2019 +0700
JAMES-2993 Not stopping MemoryTaskManager results in deadlock
This results in Reactor boundedElastic thread exaustion
---
.../james/webadmin/routes/MailboxesRoutesTest.java | 4 +++-
.../james/webadmin/routes/MessageRoutesTest.java | 12 +++--------
.../webadmin/routes/UserMailboxesRoutesTest.java | 24 +++++++++++++---------
3 files changed, 20 insertions(+), 20 deletions(-)
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
index 67b0043..5f0a977 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MailboxesRoutesTest.java
@@ -74,11 +74,12 @@ class MailboxesRoutesTest {
private WebAdminServer webAdminServer;
private ListeningMessageSearchIndex searchIndex;
private InMemoryMailboxManager mailboxManager;
+ private MemoryTaskManager taskManager;
@BeforeEach
void beforeEach() {
mailboxManager = InMemoryIntegrationResources.defaultResources().getMailboxManager();
- MemoryTaskManager taskManager = new MemoryTaskManager(new Hostname("foo"));
+ taskManager = new MemoryTaskManager(new Hostname("foo"));
InMemoryId.Factory mailboxIdFactory = new InMemoryId.Factory();
searchIndex = mock(ListeningMessageSearchIndex.class);
ReIndexerPerformer reIndexerPerformer = new ReIndexerPerformer(
@@ -108,6 +109,7 @@ class MailboxesRoutesTest {
@AfterEach
void tearDown() {
webAdminServer.destroy();
+ taskManager.stop();
}
@Nested
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MessageRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MessageRoutesTest.java
index 6d068fb..46ef7e6 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MessageRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/MessageRoutesTest.java
@@ -32,8 +32,6 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import org.apache.james.core.Username;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageManager;
-import org.apache.james.mailbox.indexer.ReIndexer;
-import org.apache.james.mailbox.inmemory.InMemoryId;
import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
import org.apache.james.mailbox.inmemory.InMemoryMessageId;
import org.apache.james.mailbox.inmemory.manager.InMemoryIntegrationResources;
@@ -50,7 +48,6 @@ import org.apache.james.webadmin.utils.ErrorResponder;
import org.apache.james.webadmin.utils.JsonTransformer;
import org.apache.mailbox.tools.indexer.MessageIdReIndexerImpl;
import org.apache.mailbox.tools.indexer.MessageIdReIndexingTask;
-import org.apache.mailbox.tools.indexer.ReIndexerImpl;
import org.apache.mailbox.tools.indexer.ReIndexerPerformer;
import org.eclipse.jetty.http.HttpStatus;
import org.junit.jupiter.api.AfterEach;
@@ -68,21 +65,17 @@ class MessageRoutesTest {
private WebAdminServer webAdminServer;
private ListeningMessageSearchIndex searchIndex;
private InMemoryMailboxManager mailboxManager;
+ private MemoryTaskManager taskManager;
@BeforeEach
void beforeEach() {
+ taskManager = new MemoryTaskManager(new Hostname("foo"));
mailboxManager = InMemoryIntegrationResources.defaultResources().getMailboxManager();
- MemoryTaskManager taskManager = new MemoryTaskManager(new Hostname("foo"));
- InMemoryId.Factory mailboxIdFactory = new InMemoryId.Factory();
searchIndex = mock(ListeningMessageSearchIndex.class);
ReIndexerPerformer reIndexerPerformer = new ReIndexerPerformer(
mailboxManager,
searchIndex,
mailboxManager.getMapperFactory());
- ReIndexer reIndexer = new ReIndexerImpl(
- reIndexerPerformer,
- mailboxManager,
- mailboxManager.getMapperFactory());
JsonTransformer jsonTransformer = new JsonTransformer();
webAdminServer = WebAdminUtils.createWebAdminServer(
@@ -100,6 +93,7 @@ class MessageRoutesTest {
@AfterEach
void tearDown() {
webAdminServer.destroy();
+ taskManager.stop();
}
@Nested
diff --git a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
index b33bafb..c73e71e 100644
--- a/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
+++ b/server/protocols/webadmin/webadmin-mailbox/src/test/java/org/apache/james/webadmin/routes/UserMailboxesRoutesTest.java
@@ -39,6 +39,7 @@ import java.util.List;
import java.util.Map;
import org.apache.james.core.Username;
+import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MailboxSessionUtil;
import org.apache.james.mailbox.MessageManager;
@@ -55,6 +56,7 @@ import org.apache.james.mailbox.model.MailboxId;
import org.apache.james.mailbox.model.MailboxMetaData;
import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.search.MailboxQuery;
+import org.apache.james.mailbox.store.MailboxSessionMapperFactory;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex;
import org.apache.james.task.Hostname;
@@ -89,23 +91,23 @@ class UserMailboxesRoutesTest {
private WebAdminServer webAdminServer;
private UsersRepository usersRepository;
private ListeningMessageSearchIndex searchIndex;
+ private MemoryTaskManager taskManager;
- private void createServer(InMemoryMailboxManager mailboxManager) throws Exception {
+ private void createServer(MailboxManager mailboxManager, MailboxSessionMapperFactory mapperFactory) throws Exception {
usersRepository = mock(UsersRepository.class);
when(usersRepository.contains(USERNAME)).thenReturn(true);
- MemoryTaskManager taskManager = new MemoryTaskManager(new Hostname("foo"));
- InMemoryId.Factory mailboxIdFactory = new InMemoryId.Factory();
+ taskManager = new MemoryTaskManager(new Hostname("foo"));
searchIndex = mock(ListeningMessageSearchIndex.class);
ReIndexerPerformer reIndexerPerformer = new ReIndexerPerformer(
mailboxManager,
searchIndex,
- mailboxManager.getMapperFactory());
+ mapperFactory);
ReIndexer reIndexer = new ReIndexerImpl(
reIndexerPerformer,
mailboxManager,
- mailboxManager.getMapperFactory());
+ mapperFactory);
webAdminServer = WebAdminUtils.createWebAdminServer(
new UserMailboxesRoutes(new UserMailboxesService(mailboxManager, usersRepository), new JsonTransformer(),
@@ -121,6 +123,7 @@ class UserMailboxesRoutesTest {
@AfterEach
void tearDown() {
webAdminServer.destroy();
+ taskManager.stop();
}
@Nested
@@ -128,7 +131,8 @@ class UserMailboxesRoutesTest {
@BeforeEach
void setUp() throws Exception {
- createServer(InMemoryIntegrationResources.defaultResources().getMailboxManager());
+ InMemoryMailboxManager mailboxManager = InMemoryIntegrationResources.defaultResources().getMailboxManager();
+ createServer(mailboxManager, mailboxManager.getMapperFactory());
}
@Test
@@ -769,14 +773,14 @@ class UserMailboxesRoutesTest {
@Nested
class ExceptionHandling {
- private InMemoryMailboxManager mailboxManager;
+ private MailboxManager mailboxManager;
@BeforeEach
void setUp() throws Exception {
- mailboxManager = mock(InMemoryMailboxManager.class);
+ mailboxManager = mock(MailboxManager.class);
when(mailboxManager.createSystemSession(any())).thenReturn(MailboxSessionUtil.create(USERNAME));
- createServer(mailboxManager);
+ createServer(mailboxManager, mock(MailboxSessionMapperFactory.class));
}
@Test
@@ -1034,7 +1038,7 @@ class UserMailboxesRoutesTest {
@BeforeEach
void setUp() throws Exception {
mailboxManager = InMemoryIntegrationResources.defaultResources().getMailboxManager();
- createServer(mailboxManager);
+ createServer(mailboxManager, mailboxManager.getMapperFactory());
}
@Nested
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org