Tellier Benoit created JAMES-2047: ------------------------------------- Summary: 500 errors upon JMAP mailbox provisionning Key: JAMES-2047 URL: https://issues.apache.org/jira/browse/JAMES-2047 Project: James Server Issue Type: Bug Components: JMAP Reporter: Tellier Benoit Assignee: Antoine Duprat
INBOX issues GetMessagesList and GetMailboxes calls in parallel, Leading to concurrency upon mailboxes creation. We might have data races with the Read before Write strategy, leading to trial to create mailboxes ending up raising *MailboxExistException*. These exceptions, not harmful, results in *500* errors at the JMAP level. {code:java} LOGGER: org.eclipse.jetty.servlet.ServletHandler (That's why it is a 500 error) java.lang.RuntimeException: Mailbox with name=#private:tmht...@linagora.com:Outbox already exists. at com.google.common.base.Throwables.propagate(Throwables.java:160) at org.apache.james.jmap.DefaultMailboxesProvisioningFilter.createMailbox(DefaultMailboxesProvisioningFilter.java:106) at org.apache.james.jmap.DefaultMailboxesProvisioningFilter.lambda$createDefaultMailboxes$127(DefaultMailboxesProvisioningFilter.java:87) at org.apache.james.jmap.DefaultMailboxesProvisioningFilter$$Lambda$275/728763676.accept(Unknown Source) at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Iterator.forEachRemaining(Iterator.java:116) at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418) at org.apache.james.jmap.DefaultMailboxesProvisioningFilter.createDefaultMailboxes(DefaultMailboxesProvisioningFilter.java:87) at org.apache.james.jmap.DefaultMailboxesProvisioningFilter.createMailboxesIfNeeded(DefaultMailboxesProvisioningFilter.java:74) {code} We need to catch and swallow this exception (the mailbox is created, that is what we want). We can log it with the INFO level to keep a track of this. -- This message was sent by Atlassian JIRA (v6.3.15#6346) --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org