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 "Tellier Benoit (JIRA)" <se...@james.apache.org> on 2019/01/04 07:30:00 UTC
[jira] [Closed] (JAMES-2465) Concurrency issue in LocalDelivery
upon INBOX provisionning
[ https://issues.apache.org/jira/browse/JAMES-2465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tellier Benoit closed JAMES-2465.
---------------------------------
> Concurrency issue in LocalDelivery upon INBOX provisionning
> -----------------------------------------------------------
>
> Key: JAMES-2465
> URL: https://issues.apache.org/jira/browse/JAMES-2465
> Project: James Server
> Issue Type: Bug
> Components: Mailet Contributions, tests
> Reporter: Tellier Benoit
> Priority: Major
> Fix For: 3.2.0
>
>
> MailAppender attempt to create the mailbox if it do not exist yet:
> {code:java}
> private void createMailboxIfNotExist(MailboxSession session, MailboxPath path) throws MailboxException {
> if (!mailboxManager.mailboxExists(path, session)) {
> mailboxManager.createMailbox(path, session);
> }
> }
> {code}
> The problem is that in a concurrent environment, a mailbox can be created between the test and the mailbox creation. In that case mailboc creation fails:
> {code:java}
> org.apache.james.mailbox.exception.MailboxExistsException: Mailbox with name=#private:touser@james.org:INBOX already exists.
> at org.apache.james.mailbox.store.StoreMailboxManager.createMailbox(StoreMailboxManager.java:497)
> at org.apache.james.transport.mailets.delivery.MailboxAppender.createMailboxIfNotExist(MailboxAppender.java:86)
> at org.apache.james.transport.mailets.delivery.MailboxAppender.appendMessageToMailbox(MailboxAppender.java:73)
> at org.apache.james.transport.mailets.delivery.MailboxAppender.append(MailboxAppender.java:64)
> ... 40 common frames omitted
> Wrapped by: javax.mail.MessagingException: Unable to access mailbox.
> at org.apache.james.transport.mailets.delivery.MailboxAppender.append(MailboxAppender.java:66)
> at org.apache.james.transport.mailets.delivery.MailboxAppender.append(MailboxAppender.java:46)
> at org.apache.james.transport.mailets.delivery.SimpleMailStore.storeMail(SimpleMailStore.java:95)
> at org.apache.james.transport.mailets.delivery.MailDispatcher.deliver(MailDispatcher.java:125)
> at org.apache.james.transport.mailets.delivery.MailDispatcher.customizeHeadersAndDeliver(MailDispatcher.java:113)
> at org.apache.james.transport.mailets.delivery.MailDispatcher.dispatch(MailDispatcher.java:90)
> at org.apache.james.transport.mailets.LocalDelivery.service(LocalDelivery.java:62)
> {code}
> We need to ignore such errors...
> note that this issue was causing *ToRepositoryTest.userShouldBeAbleToAccessReprocessedMails* test to be unstable...
> {code:java}
> ToRepositoryTest.userShouldBeAbleToAccessReprocessedMails:133 ยป ConditionTimeout
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org