[jira] [Created] (JAMES-3311) ImapChannelUpstreamHandler does not supports concurrent accesses
Gautier DI FOLCO created JAMES-3311: --- Summary: ImapChannelUpstreamHandler does not supports concurrent accesses Key: JAMES-3311 URL: https://issues.apache.org/jira/browse/JAMES-3311 Project: James Server Issue Type: Bug Components: IMAPServer Reporter: Gautier DI FOLCO *ImapChannelUpstreamHandler* can be called concurrently and several IMAP messages being processed parrallely on the same connection. There is a data race: one command cannot add the heartbeat handler, the other one removes it. *org.jboss.netty.channel.ChannelPipeline* is not concurrent friendly. {code:java} java.util.NoSuchElementException: heartbeatHandler at org.jboss.netty.channel.DefaultChannelPipeline.getContextOrDie(DefaultChannelPipeline.java:684) at org.jboss.netty.channel.DefaultChannelPipeline.remove(DefaultChannelPipeline.java:153) at org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:215) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43) at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67) at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source){code} {code:java} java.lang.IllegalArgumentException: Duplicate handler name: heartbeatHandler at org.jboss.netty.channel.DefaultChannelPipeline.checkDuplicateName(DefaultChannelPipeline.java:677) at org.jboss.netty.channel.DefaultChannelPipeline.addBefore(DefaultChannelPipeline.java:117) at org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:192) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43) at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67) at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source){code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3310) DeletedMessageVaultHook is brittle
Gautier DI FOLCO created JAMES-3310: --- Summary: DeletedMessageVaultHook is brittle Key: JAMES-3310 URL: https://issues.apache.org/jira/browse/JAMES-3310 Project: James Server Issue Type: Improvement Components: Blob Reporter: Gautier DI FOLCO When DeletedMessageVaultHook cannot load back a message it silently continue while it should fail in order to avoid message loss. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3296) Be able to rebuild RabbitMQ MailQueue
[ https://issues.apache.org/jira/browse/JAMES-3296?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17154366#comment-17154366 ] Gautier DI FOLCO commented on JAMES-3296: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3547] > Be able to rebuild RabbitMQ MailQueue > - > > Key: JAMES-3296 > URL: https://issues.apache.org/jira/browse/JAMES-3296 > Project: James Server > Issue Type: Improvement > Components: Queue, SpoolManager & Processors >Reporter: Gautier DI FOLCO >Priority: Major > > In order to survive RabbitMQ data-loss, we should be able to rebuild RabbitMQ > from Cassandra view to be able to continue mail processing. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3296) Be able to rebuild RabbitMQ MailQueue
Gautier DI FOLCO created JAMES-3296: --- Summary: Be able to rebuild RabbitMQ MailQueue Key: JAMES-3296 URL: https://issues.apache.org/jira/browse/JAMES-3296 Project: James Server Issue Type: Improvement Components: Queue, SpoolManager & Processors Reporter: Gautier DI FOLCO In order to survive RabbitMQ data-loss, we should be able to rebuild RabbitMQ from Cassandra view to be able to continue mail processing. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3292) Listing Tasks is too verbose
Gautier DI FOLCO created JAMES-3292: --- Summary: Listing Tasks is too verbose Key: JAMES-3292 URL: https://issues.apache.org/jira/browse/JAMES-3292 Project: James Server Issue Type: Bug Components: webadmin Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO When we list all tasks through webadmin, additional information are displayed, while it should only be displayed in the specific task get. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3288) When RabbitMQ stops mails are not processed when it goes back
[ https://issues.apache.org/jira/browse/JAMES-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17148799#comment-17148799 ] Gautier DI FOLCO commented on JAMES-3288: - It was actually wrongly diagnosed, resilient connection and channel are used everywhere, but an unexpected exception (see JAMES-3290) broke the dequeuing. > When RabbitMQ stops mails are not processed when it goes back > - > > Key: JAMES-3288 > URL: https://issues.apache.org/jira/browse/JAMES-3288 > Project: James Server > Issue Type: Improvement > Components: rabbitmq >Reporter: Gautier DI FOLCO >Priority: Major > > When RabbitMQ stops (is killed), the goes back, mails are not processed back -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3290) Cassandra exception is not handled in JamesSpooler
[ https://issues.apache.org/jira/browse/JAMES-3290?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17148796#comment-17148796 ] Gautier DI FOLCO commented on JAMES-3290: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3530] > Cassandra exception is not handled in JamesSpooler > -- > > Key: JAMES-3290 > URL: https://issues.apache.org/jira/browse/JAMES-3290 > Project: James Server > Issue Type: Improvement > Components: rabbitmq, SpoolManager & Processors >Reporter: Gautier DI FOLCO >Priority: Major > > In the distributed flavor, we rely on *MailLoader* which itself rely on > Cassandra. > Since this code mix-up reactive and non-reactive code, Cassandra errors are > non handled which break in the RabbitMQ part: > {code:java} > Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All > host(s) tried for query failed (tried: cassandra-0 > (com.datastax.driver.core.exceptions.OperationTimedOutException: > [cassandra-0] Timed out waiting for server response), cassandra-1 > (com.datastax.driver.core.exceptions.OperationTimedOutException: > [cassandra-1] Timed out waiting for server response), cassandra-2 > (com.datastax.driver.core.exceptions.OperationTimedOutException: > [cassandra-2] Timed out waiting for server response)) > at > com.datastax.driver.core.RequestHandler.reportNoMoreHosts(RequestHandler.java:284) > at > com.datastax.driver.core.RequestHandler.access$1200(RequestHandler.java:62) > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.findNextHostAndQuery(RequestHandler.java:376) > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.retry(RequestHandler.java:558) > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.processRetryDecision(RequestHandler.java:540) > at > com.datastax.driver.core.RequestHandler$SpeculativeExecution.onTimeout(RequestHandler.java:981) > at > com.datastax.driver.core.Connection$ResponseHandler$1.run(Connection.java:1582) > at > com.datastax.shaded.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:663) > at > com.datastax.shaded.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:738) > at > com.datastax.shaded.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:466) > at > com.datastax.shaded.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) > at java.base/java.lang.Thread.run(Unknown Source) > Suppressed: java.lang.Exception: #block terminated with an error > at > reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) > at reactor.core.publisher.Mono.block(Mono.java:1666) > at > org.apache.james.queue.rabbitmq.MailLoader.load(MailLoader.java:46) > at > com.github.fge.lambdas.functions.FunctionChainer.lambda$sneakyThrow$49(FunctionChainer.java:74) > at > org.apache.james.queue.rabbitmq.Dequeuer.loadMail(Dequeuer.java:146) > at > org.apache.james.queue.rabbitmq.Dequeuer.loadItem(Dequeuer.java:124) > at > org.apache.james.queue.rabbitmq.Dequeuer.lambda$deQueue$1(Dequeuer.java:105) > at > reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.onNext(FluxMergeSequential.java:201) > at > reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107) > at > reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:793) > at > reactor.core.publisher.FluxCreate$BufferAsyncSink.next(FluxCreate.java:718) > at > reactor.core.publisher.FluxCreate$SerializedSink.next(FluxCreate.java:153) > at reactor.rabbitmq.Receiver.lambda$null$9(Receiver.java:190) > at > com.rabbitmq.client.impl.recovery.AutorecoveringChannel$2.handleDelivery(AutorecoveringChannel.java:577) > at > com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149) > at > com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:104) > at > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) > at > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > ... 1 common frames omitted > t thread pool-17-thread-5 > {code} > Worse: it actually break the spooling threads, meaning that mails are not > dequeued. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-u
[jira] [Created] (JAMES-3290) Cassandra exception is not handled in JamesSpooler
Gautier DI FOLCO created JAMES-3290: --- Summary: Cassandra exception is not handled in JamesSpooler Key: JAMES-3290 URL: https://issues.apache.org/jira/browse/JAMES-3290 Project: James Server Issue Type: Improvement Components: rabbitmq, SpoolManager & Processors Reporter: Gautier DI FOLCO In the distributed flavor, we rely on *MailLoader* which itself rely on Cassandra. Since this code mix-up reactive and non-reactive code, Cassandra errors are non handled which break in the RabbitMQ part: {code:java} Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: cassandra-0 (com.datastax.driver.core.exceptions.OperationTimedOutException: [cassandra-0] Timed out waiting for server response), cassandra-1 (com.datastax.driver.core.exceptions.OperationTimedOutException: [cassandra-1] Timed out waiting for server response), cassandra-2 (com.datastax.driver.core.exceptions.OperationTimedOutException: [cassandra-2] Timed out waiting for server response)) at com.datastax.driver.core.RequestHandler.reportNoMoreHosts(RequestHandler.java:284) at com.datastax.driver.core.RequestHandler.access$1200(RequestHandler.java:62) at com.datastax.driver.core.RequestHandler$SpeculativeExecution.findNextHostAndQuery(RequestHandler.java:376) at com.datastax.driver.core.RequestHandler$SpeculativeExecution.retry(RequestHandler.java:558) at com.datastax.driver.core.RequestHandler$SpeculativeExecution.processRetryDecision(RequestHandler.java:540) at com.datastax.driver.core.RequestHandler$SpeculativeExecution.onTimeout(RequestHandler.java:981) at com.datastax.driver.core.Connection$ResponseHandler$1.run(Connection.java:1582) at com.datastax.shaded.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:663) at com.datastax.shaded.netty.util.HashedWheelTimer$HashedWheelBucket.expireTimeouts(HashedWheelTimer.java:738) at com.datastax.shaded.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:466) at com.datastax.shaded.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Unknown Source) Suppressed: java.lang.Exception: #block terminated with an error at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:99) at reactor.core.publisher.Mono.block(Mono.java:1666) at org.apache.james.queue.rabbitmq.MailLoader.load(MailLoader.java:46) at com.github.fge.lambdas.functions.FunctionChainer.lambda$sneakyThrow$49(FunctionChainer.java:74) at org.apache.james.queue.rabbitmq.Dequeuer.loadMail(Dequeuer.java:146) at org.apache.james.queue.rabbitmq.Dequeuer.loadItem(Dequeuer.java:124) at org.apache.james.queue.rabbitmq.Dequeuer.lambda$deQueue$1(Dequeuer.java:105) at reactor.core.publisher.FluxMergeSequential$MergeSequentialMain.onNext(FluxMergeSequential.java:201) at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107) at reactor.core.publisher.FluxCreate$BufferAsyncSink.drain(FluxCreate.java:793) at reactor.core.publisher.FluxCreate$BufferAsyncSink.next(FluxCreate.java:718) at reactor.core.publisher.FluxCreate$SerializedSink.next(FluxCreate.java:153) at reactor.rabbitmq.Receiver.lambda$null$9(Receiver.java:190) at com.rabbitmq.client.impl.recovery.AutorecoveringChannel$2.handleDelivery(AutorecoveringChannel.java:577) at com.rabbitmq.client.impl.ConsumerDispatcher$5.run(ConsumerDispatcher.java:149) at com.rabbitmq.client.impl.ConsumerWorkService$WorkPoolRunnable.run(ConsumerWorkService.java:104) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 common frames omitted t threadpool-17-thread-5 {code} Worse: it actually break the spooling threads, meaning that mails are not dequeued. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-3288) When RabbitMQ stops mails are not processed when it goes back
[ https://issues.apache.org/jira/browse/JAMES-3288?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO closed JAMES-3288. --- Resolution: Not A Problem > When RabbitMQ stops mails are not processed when it goes back > - > > Key: JAMES-3288 > URL: https://issues.apache.org/jira/browse/JAMES-3288 > Project: James Server > Issue Type: Improvement > Components: rabbitmq >Reporter: Gautier DI FOLCO >Priority: Major > > When RabbitMQ stops (is killed), the goes back, mails are not processed back -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3288) When RabbitMQ stops mails are not processed when it goes back
Gautier DI FOLCO created JAMES-3288: --- Summary: When RabbitMQ stops mails are not processed when it goes back Key: JAMES-3288 URL: https://issues.apache.org/jira/browse/JAMES-3288 Project: James Server Issue Type: Improvement Components: rabbitmq Reporter: Gautier DI FOLCO When RabbitMQ stops (is killed), the goes back, mails are not processed back -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3276) TemporaryJamesServer leaks between tests
[ https://issues.apache.org/jira/browse/JAMES-3276?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17143709#comment-17143709 ] Gautier DI FOLCO commented on JAMES-3276: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3477] > TemporaryJamesServer leaks between tests > > > Key: JAMES-3276 > URL: https://issues.apache.org/jira/browse/JAMES-3276 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When tests are running with TemporaryJamesServer, some information are > leaking, it is visible when different configurations are set-up, because the > previous configuration is put. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3276) TemporaryJamesServer leaks between tests
Gautier DI FOLCO created JAMES-3276: --- Summary: TemporaryJamesServer leaks between tests Key: JAMES-3276 URL: https://issues.apache.org/jira/browse/JAMES-3276 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO When tests are running with TemporaryJamesServer, some information are leaking, it is visible when different configurations are set-up, because the previous configuration is put. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3267) ImapRequestFrameDecoder.decode should not force the temporary file deletion
[ https://issues.apache.org/jira/browse/JAMES-3267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142968#comment-17142968 ] Gautier DI FOLCO commented on JAMES-3267: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3469] > ImapRequestFrameDecoder.decode should not force the temporary file deletion > --- > > Key: JAMES-3267 > URL: https://issues.apache.org/jira/browse/JAMES-3267 > Project: James Server > Issue Type: Improvement > Components: IMAPServer >Reporter: Gautier DI FOLCO >Priority: Trivial > > ImapRequestFrameDecoder.decode relies on a temporary file to operate. > At the end, it forcefully tries to delete it, which fails when the file does > not exists anymore: > > {code:java} > org.apache.james.mailbox.exception.MailboxException: Unable to parse > message > at > org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:344) > at > org.apache.james.imap.processor.AppendProcessor.appendToMailbox(AppendProcessor.java:130) > at > org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:75) > at > org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:55) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:100) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:77) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:58) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:198) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannel
[jira] [Created] (JAMES-3267) ImapRequestFrameDecoder.decode should not force the temporary file deletion
Gautier DI FOLCO created JAMES-3267: --- Summary: ImapRequestFrameDecoder.decode should not force the temporary file deletion Key: JAMES-3267 URL: https://issues.apache.org/jira/browse/JAMES-3267 Project: James Server Issue Type: Improvement Components: IMAPServer Reporter: Gautier DI FOLCO ImapRequestFrameDecoder.decode relies on a temporary file to operate. At the end, it forcefully tries to delete it, which fails when the file does not exists anymore: {code:java} org.apache.james.mailbox.exception.MailboxException: Unable to parse message at org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:344) at org.apache.james.imap.processor.AppendProcessor.appendToMailbox(AppendProcessor.java:130) at org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:75) at org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:55) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:100) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:77) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:58) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:198) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java
[jira] [Closed] (JAMES-3247) Do not throw in StoreMessageManager.appendMessage close
[ https://issues.apache.org/jira/browse/JAMES-3247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO closed JAMES-3247. --- Resolution: Not A Bug It was not the right issue. > Do not throw in StoreMessageManager.appendMessage close > --- > > Key: JAMES-3247 > URL: https://issues.apache.org/jira/browse/JAMES-3247 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > From time to time, StoreMessageManager.appendMessage throws when the closes > happen, when the temporary file disappears: > > {code:java} > org.apache.james.mailbox.exception.MailboxException: Unable to parse message > at > org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:344) > at > org.apache.james.imap.processor.AppendProcessor.appendToMailbox(AppendProcessor.java:130) > at > org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:75) > at > org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:55) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:100) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:77) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:58) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:198) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at > org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) > at > org.jboss.netty.channel.Channels.fireMessageRecei
[jira] [Reopened] (JAMES-3213) Enrich contact auto completion mailet pipeline with replyTo field
[ https://issues.apache.org/jira/browse/JAMES-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO reopened JAMES-3213: - The header name was invalid: [https://github.com/linagora/james-project/pull/3463] > Enrich contact auto completion mailet pipeline with replyTo field > - > > Key: JAMES-3213 > URL: https://issues.apache.org/jira/browse/JAMES-3213 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When an attendee changes his participant status, there is a notification > email is sent to the event organizer from the attendee. > Then a third party sends an ITIP request to the CardAV server to handle > realtime update. > To achieve that, the third party send a message to James which output > received events to an AMQP channel that could be consumed by a CardAV server. > In the mean time James enrich the event sent to this server. > If the sender email does not exist in the list attendee, the CardAV ITIP > broker will add him to the attendee list. > This is not correct in cases: > * When an external attendee accept the event, the notification email should > send from the third party system > ([no-re...@example.org|mailto:no-re...@open-paas.org]) > * When the attendee forwards the invitation email to an external user, then > the external user (is not included in attendee list) accepts. > Both cases above should not lead to the behavior that adding the sender to > the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3247) Do not throw in StoreMessageManager.appendMessage close
[ https://issues.apache.org/jira/browse/JAMES-3247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17139477#comment-17139477 ] Gautier DI FOLCO commented on JAMES-3247: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3453] > Do not throw in StoreMessageManager.appendMessage close > --- > > Key: JAMES-3247 > URL: https://issues.apache.org/jira/browse/JAMES-3247 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > From time to time, StoreMessageManager.appendMessage throws when the closes > happen, when the temporary file disappears: > > {code:java} > org.apache.james.mailbox.exception.MailboxException: Unable to parse message > at > org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:344) > at > org.apache.james.imap.processor.AppendProcessor.appendToMailbox(AppendProcessor.java:130) > at > org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:75) > at > org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:55) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:100) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:77) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:58) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) > at > org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:198) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at > org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultCha
[jira] [Created] (JAMES-3247) Do not throw in StoreMessageManager.appendMessage close
Gautier DI FOLCO created JAMES-3247: --- Summary: Do not throw in StoreMessageManager.appendMessage close Key: JAMES-3247 URL: https://issues.apache.org/jira/browse/JAMES-3247 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO >From time to time, StoreMessageManager.appendMessage throws when the closes >happen, when the temporary file disappears: {code:java} org.apache.james.mailbox.exception.MailboxException: Unable to parse message at org.apache.james.mailbox.store.StoreMessageManager.appendMessage(StoreMessageManager.java:344) at org.apache.james.imap.processor.AppendProcessor.appendToMailbox(AppendProcessor.java:130) at org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:75) at org.apache.james.imap.processor.AppendProcessor.processRequest(AppendProcessor.java:55) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:100) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:77) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:58) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:67) at org.apache.james.imapserver.netty.ImapChannelUpstreamHandler.messageReceived(ImapChannelUpstreamHandler.java:198) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
[jira] [Commented] (JAMES-2335) Modernize James configuration
[ https://issues.apache.org/jira/browse/JAMES-2335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17139344#comment-17139344 ] Gautier DI FOLCO commented on JAMES-2335: - In fact we have removed all the OSGi code in James due to the lack of tests on it. Whatever the chosen solution, the implementation should be thoroughly tested to avoid the maintenance costs. > Modernize James configuration > - > > Key: JAMES-2335 > URL: https://issues.apache.org/jira/browse/JAMES-2335 > Project: James Server > Issue Type: Improvement > Components: configuration >Reporter: Benoit Tellier >Priority: Major > Labels: feature, refactoring > > Apache James currently relies on commons-configuration, and thus on XML > configuration files. > As such the configuration process has several problems: > - Working with XML is boiler plate > - Working with file leads to a real lack of flexibility. > - For instance, in a cluster environment, we would like all the James > server to share the same configurations. > - Also, in tests, we need to test the different configuration values. > We can not do this without overwriting files, which is dangerous, and > boilerplate. > What we need is: > - To represent all possible configuration via java objects. > - Configuration providers should be able to convert the configuration stored > into the java configuration object. > - We should be able to inject different configuration providers from > guice/spring. > It would allow to specify alternative configuration backends (different > formats, different storage techniques) and allow direct injection (for tests > for instance). > Here would be the steps for this work: > - Add a *Initializable* class in *lifecycle-api*. This should be called by > Guice and Sprint at initialization > - *configure* in Configurable will save a Java object (parse the > HierachicalConfiguration into a java object representing it's content). > Initialization will then be done by *Initializable*. > - Then we can move away, object by object, from the *Configurable* > interface: We need to move the configuration parsing in a separated class > (behind an interface). We can register *ConfigurationProviders*, with an > XML/commons-configuration default implementation. > - Deprecate *Configurable*. > - Provide alternative configuration providers, for example, a Cassandra > stored configuration provider -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Closed] (JAMES-2733) WebAdmin is slow under heavyload
[ https://issues.apache.org/jira/browse/JAMES-2733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO closed JAMES-2733. --- Resolution: Won't Fix > WebAdmin is slow under heavyload > > > Key: JAMES-2733 > URL: https://issues.apache.org/jira/browse/JAMES-2733 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > Under heavy load, for a prolonged period of time (9 mail/s for 6h), WebAdmin > takes up to 45 seconds like > > {code:java} > curl -XGET http://james-charge-01:8000/mailQueues/spool > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2909) Use Architectural Decision Records
[ https://issues.apache.org/jira/browse/JAMES-2909?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2909. - Resolution: Fixed > Use Architectural Decision Records > -- > > Key: JAMES-2909 > URL: https://issues.apache.org/jira/browse/JAMES-2909 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Major > Time Spent: 3h 10m > Remaining Estimate: 0h > > In order to adopt a more community-oriented, we should use an Architectural > Decision Records-based processus, being the support of discussion on the > developers mailing-lists. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
[ https://issues.apache.org/jira/browse/JAMES-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-3066. - Resolution: Incomplete > [WebAdmin] Add end point for user's allowed From headers querying > - > > Key: JAMES-3066 > URL: https://issues.apache.org/jira/browse/JAMES-3066 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > Following JAMES-3032 which allows different From header values, an end point > should be added in order to query all the possible values of a given user. > For example: > > {code:java} > GET /users/b...@domain.tld/allowedFromHeaders > ["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-3157) Inject blobs credentials
[ https://issues.apache.org/jira/browse/JAMES-3157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-3157. - Resolution: Fixed > Inject blobs credentials > > > Key: JAMES-3157 > URL: https://issues.apache.org/jira/browse/JAMES-3157 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Major > > When running the benchmarks, we should be able to target different profiles, > targeting or not an external blobs store. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3224) Make Cassandra Consistency levels configurable
[ https://issues.apache.org/jira/browse/JAMES-3224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17138243#comment-17138243 ] Gautier DI FOLCO commented on JAMES-3224: - > > What we can do is allow to switch QUORUM-style queries to EACH_QUORUM or > > LOCAL_QUORUM Just to be sure I have got this right: I drop {{cassandra.consistency_level.lightweight_transaction}} and I limit {{cassandra.consistency_level.regular}}? >> BTW, we also have, in the codebase, some ONE on specific uses: we can't have >> a single level of configuration as it uses ONE for good reasons. > I think it is unaffected by Gautier changes. Yes, have let them as they are. > Make Cassandra Consistency levels configurable > -- > > Key: JAMES-3224 > URL: https://issues.apache.org/jira/browse/JAMES-3224 > Project: James Server > Issue Type: Improvement > Components: cassandra >Reporter: Gautier DI FOLCO >Priority: Minor > > Consistency level in Cassandra queries is set explicitly to QUORUM in some > cases, and to SERIAL in some other cases (lightweight transactions). > The goal is to make these queries globally configurable. > In the {{cassandra.properties}} file, I propose we add two configuration > properties: > * {{cassandra.consistency_level.regular}} (default to QUORUM to avoid > breaking changes) > * {{cassandra.consistency_level.lightweight_transaction}} (default to SERIAL) -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3224) Make Cassandra Consistency levels configurable
[ https://issues.apache.org/jira/browse/JAMES-3224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17136804#comment-17136804 ] Gautier DI FOLCO commented on JAMES-3224: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3448] > Make Cassandra Consistency levels configurable > -- > > Key: JAMES-3224 > URL: https://issues.apache.org/jira/browse/JAMES-3224 > Project: James Server > Issue Type: Improvement > Components: cassandra >Reporter: Gautier DI FOLCO >Priority: Minor > > Consistency level in Cassandra queries is set explicitly to QUORUM in some > cases, and to SERIAL in some other cases (lightweight transactions). > The goal is to make these queries globally configurable. > In the {{cassandra.properties}} file, I propose we add two configuration > properties: > * {{cassandra.consistency_level.regular}} (default to QUORUM to avoid > breaking changes) > * {{cassandra.consistency_level.lightweight_transaction}} (default to SERIAL) -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3224) Make Cassandra Consistency levels configurable
Gautier DI FOLCO created JAMES-3224: --- Summary: Make Cassandra Consistency levels configurable Key: JAMES-3224 URL: https://issues.apache.org/jira/browse/JAMES-3224 Project: James Server Issue Type: Improvement Components: cassandra Reporter: Gautier DI FOLCO Consistency level in Cassandra queries is set explicitly to QUORUM in some cases, and to SERIAL in some other cases (lightweight transactions). The goal is to make these queries globally configurable. In the {{cassandra.properties}} file, I propose we add two configuration properties: * {{cassandra.consistency_level.regular}} (default to QUORUM to avoid breaking changes) * {{cassandra.consistency_level.lightweight_transaction}} (default to SERIAL) -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3213) Enrich contact auto completion mailet pipeline with replyTo field
[ https://issues.apache.org/jira/browse/JAMES-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3213: Description: When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then a third party sends an ITIP request to the CardAV server to handle realtime update. To achieve that, the third party send a message to James which output received events to an AMQP channel that could be consumed by a CardAV server. In the mean time James enrich the event sent to this server. If the sender email does not exist in the list attendee, the CardAV ITIP broker will add him to the attendee list. This is not correct in cases: * When an external attendee accept the event, the notification email should send from the third party system ([no-re...@example.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. was: When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then a third party sends an ITIP request to the CardAV server to handle realtime update. If the sender email does not exist in the list attendee, the CardAV ITIP broker will add him to the attendee list. This is not correct in cases: * When an external attendee accept the event, the notification email should send from the third party system ([no-re...@example.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. > Enrich contact auto completion mailet pipeline with replyTo field > - > > Key: JAMES-3213 > URL: https://issues.apache.org/jira/browse/JAMES-3213 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When an attendee changes his participant status, there is a notification > email is sent to the event organizer from the attendee. > Then a third party sends an ITIP request to the CardAV server to handle > realtime update. > To achieve that, the third party send a message to James which output > received events to an AMQP channel that could be consumed by a CardAV server. > In the mean time James enrich the event sent to this server. > If the sender email does not exist in the list attendee, the CardAV ITIP > broker will add him to the attendee list. > This is not correct in cases: > * When an external attendee accept the event, the notification email should > send from the third party system > ([no-re...@example.org|mailto:no-re...@open-paas.org]) > * When the attendee forwards the invitation email to an external user, then > the external user (is not included in attendee list) accepts. > Both cases above should not lead to the behavior that adding the sender to > the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3213) Enrich contact auto completion mailet pipeline with replyTo field
[ https://issues.apache.org/jira/browse/JAMES-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3213: Description: When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then a third party sends an ITIP request to the CardAV server to handle realtime update. If the sender email does not exist in the list attendee, the CardAV ITIP broker will add him to the attendee list. This is not correct in cases: * When an external attendee accept the event, the notification email should send from the third party system ([no-re...@example.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. was: When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then a third party sends an ITIP request to the CardAV server to handle realtime update. If the sender email does not exist in the list attendee, Sabre ITIP broker will add him to the attendee list. This is not correct in cases: * When an external attendee accept the event, the notification email should send from the third party system ([no-re...@example.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. Summary: Enrich contact auto completion mailet pipeline with replyTo field (was: Prevent non-participant add in CardAV) > Enrich contact auto completion mailet pipeline with replyTo field > - > > Key: JAMES-3213 > URL: https://issues.apache.org/jira/browse/JAMES-3213 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When an attendee changes his participant status, there is a notification > email is sent to the event organizer from the attendee. > Then a third party sends an ITIP request to the CardAV server to handle > realtime update. > If the sender email does not exist in the list attendee, the CardAV ITIP > broker will add him to the attendee list. > This is not correct in cases: > * When an external attendee accept the event, the notification email should > send from the third party system > ([no-re...@example.org|mailto:no-re...@open-paas.org]) > * When the attendee forwards the invitation email to an external user, then > the external user (is not included in attendee list) accepts. > Both cases above should not lead to the behavior that adding the sender to > the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3213) Prevent non-participant add in CardAV
[ https://issues.apache.org/jira/browse/JAMES-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3213: Summary: Prevent non-participant add in CardAV (was: Prevent non-participant add in Sabre) > Prevent non-participant add in CardAV > - > > Key: JAMES-3213 > URL: https://issues.apache.org/jira/browse/JAMES-3213 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When an attendee changes his participant status, there is a notification > email is sent to the event organizer from the attendee. > Then a third party sends an ITIP request to the CardAV server to handle > realtime update. > If the sender email does not exist in the list attendee, Sabre ITIP broker > will add him to the attendee list. > This is not correct in cases: > * When an external attendee accept the event, the notification email should > send from the third party system > ([no-re...@example.org|mailto:no-re...@open-paas.org]) > * When the attendee forwards the invitation email to an external user, then > the external user (is not included in attendee list) accepts. > Both cases above should not lead to the behavior that adding the sender to > the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3213) Prevent non-participant add in Sabre
[ https://issues.apache.org/jira/browse/JAMES-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3213: Description: When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then a third party sends an ITIP request to the CardAV server to handle realtime update. If the sender email does not exist in the list attendee, Sabre ITIP broker will add him to the attendee list. This is not correct in cases: * When an external attendee accept the event, the notification email should send from the third party system ([no-re...@example.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. was: When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then ESN send an ITIP request to Sabre to handle realtime update. If the sender email does not exist in the list attendee, Sabre ITIP broker will add him to the attendee list. [https://github.com/sabre-io/vobject/blob/master/lib/ITip/Broker.php#L373-L382] This is not correct in cases: * When an external attendee accept the event, the notification email should send from OpenPaaS system ([no-re...@open-paas.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. > Prevent non-participant add in Sabre > > > Key: JAMES-3213 > URL: https://issues.apache.org/jira/browse/JAMES-3213 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When an attendee changes his participant status, there is a notification > email is sent to the event organizer from the attendee. > Then a third party sends an ITIP request to the CardAV server to handle > realtime update. > If the sender email does not exist in the list attendee, Sabre ITIP broker > will add him to the attendee list. > This is not correct in cases: > * When an external attendee accept the event, the notification email should > send from the third party system > ([no-re...@example.org|mailto:no-re...@open-paas.org]) > * When the attendee forwards the invitation email to an external user, then > the external user (is not included in attendee list) accepts. > Both cases above should not lead to the behavior that adding the sender to > the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3213) Prevent non-participant add in Sabre
[ https://issues.apache.org/jira/browse/JAMES-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17133287#comment-17133287 ] Gautier DI FOLCO commented on JAMES-3213: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3438] > Prevent non-participant add in Sabre > > > Key: JAMES-3213 > URL: https://issues.apache.org/jira/browse/JAMES-3213 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > When an attendee changes his participant status, there is a notification > email is sent to the event organizer from the attendee. > Then ESN send an ITIP request to Sabre to handle realtime update. > If the sender email does not exist in the list attendee, Sabre ITIP broker > will add him to the attendee list. > [https://github.com/sabre-io/vobject/blob/master/lib/ITip/Broker.php#L373-L382] > This is not correct in cases: > * When an external attendee accept the event, the notification email should > send from OpenPaaS system > ([no-re...@open-paas.org|mailto:no-re...@open-paas.org]) > * When the attendee forwards the invitation email to an external user, then > the external user (is not included in attendee list) accepts. > Both cases above should not lead to the behavior that adding the sender to > the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3213) Prevent non-participant add in Sabre
Gautier DI FOLCO created JAMES-3213: --- Summary: Prevent non-participant add in Sabre Key: JAMES-3213 URL: https://issues.apache.org/jira/browse/JAMES-3213 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO When an attendee changes his participant status, there is a notification email is sent to the event organizer from the attendee. Then ESN send an ITIP request to Sabre to handle realtime update. If the sender email does not exist in the list attendee, Sabre ITIP broker will add him to the attendee list. [https://github.com/sabre-io/vobject/blob/master/lib/ITip/Broker.php#L373-L382] This is not correct in cases: * When an external attendee accept the event, the notification email should send from OpenPaaS system ([no-re...@open-paas.org|mailto:no-re...@open-paas.org]) * When the attendee forwards the invitation email to an external user, then the external user (is not included in attendee list) accepts. Both cases above should not lead to the behavior that adding the sender to the attendee list. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3211) Generalize EventBus
[ https://issues.apache.org/jira/browse/JAMES-3211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17133033#comment-17133033 ] Gautier DI FOLCO commented on JAMES-3211: - The title is not specific enough: "Extends mailbox-api EventBus interface" > Generalize EventBus > --- > > Key: JAMES-3211 > URL: https://issues.apache.org/jira/browse/JAMES-3211 > Project: James Server > Issue Type: Improvement >Reporter: Lan Khuat >Priority: Major > > When searching for users by quota ratio if we set the value of the parameters > to 0, the search feature is supposed to return newly created users who have > not receive any email yet at that point. > However, this is not the case due to the quotas are currently being > initialize only after an user receive the first email. > We need an event-driven system to initialize the quotas after an user has > been created successfully. The EventBus in mailbox-api could be generalized > so we can implement it to solve this problem without having to depend on this > module. > > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3179) Run a static analyzer
[ https://issues.apache.org/jira/browse/JAMES-3179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17129002#comment-17129002 ] Gautier DI FOLCO commented on JAMES-3179: - > We could concider PMD [https://pmd.github.io/] as a viable option though I'm > unsure we should add it to the main build. I will have a look during next intersprint. > What decision did you end up taking regarding this? > Would it be a good idea to include a profile to ease its activation and > enable it in CI environments? It would be a good fit for the CI, but it requires profiles and we agreed to wait for the gradle migration before integrating it. > Run a static analyzer > - > > Key: JAMES-3179 > URL: https://issues.apache.org/jira/browse/JAMES-3179 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > It might be a good idea to check potential mistakes easily to spot errors. > Tools tried: > * [ErrorProne|https://errorprone.info/] > * [fb-infer|https://fbinfer.com/] -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3191) Key registration is slow
[ https://issues.apache.org/jira/browse/JAMES-3191?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17115814#comment-17115814 ] Gautier DI FOLCO commented on JAMES-3191: - I have a few questions: # How did you discovered it was related to the channel number? # Why do we need RabbitMQ for a SELECT? Maybe it is not the channel problem, but the lock time, in this case, we might do more than just sending a message over RabbitMQ, and we should prepare the message, then request the channel. > Key registration is slow > > > Key: JAMES-3191 > URL: https://issues.apache.org/jira/browse/JAMES-3191 > Project: James Server > Issue Type: Improvement > Components: eventbus, IMAPServer >Affects Versions: master >Reporter: Benoit Tellier >Priority: Major > Labels: perf > > We noticed that on *master* SELECT IMAP command is significatively slow > (several minutes) on top of the distributed profile. (See attached > instrumentation average time and percentiles) > A quick performance review links this to listener registration (by key). > A code review leads to: > - The low channel number (3) maybe this count can be safely raised to a > higher number? Like 10? Maybe even configurable? > - EventBus::Register operation is handling IO but is synchronous. The > reactor scheduler backing it up is unspecifed (thus is likely the parrallel > one). We should let the caller specify the scheduler he whishes to run. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3179) Run a static analyzer
[ https://issues.apache.org/jira/browse/JAMES-3179?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17107060#comment-17107060 ] Gautier DI FOLCO commented on JAMES-3179: - Regarding the build slow down: each tool increase it by 50%, which is unsuitable on a PC, but not on the CI which aim to include ErrorProne. > Run a static analyzer > - > > Key: JAMES-3179 > URL: https://issues.apache.org/jira/browse/JAMES-3179 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > It might be a good idea to check potential mistakes easily to spot errors. > Tools tried: > * [ErrorProne|https://errorprone.info/] > * [fb-infer|https://fbinfer.com/] -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3179) Run a static analyzer
[ https://issues.apache.org/jira/browse/JAMES-3179?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3179: Description: It might be a good idea to check potential mistakes easily to spot errors. Tools tried: * [ErrorProne|https://errorprone.info/] * [fb-infer|https://fbinfer.com/] was:It might be a good idea to check potential mistakes easily to spot errors. > Run a static analyzer > - > > Key: JAMES-3179 > URL: https://issues.apache.org/jira/browse/JAMES-3179 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > It might be a good idea to check potential mistakes easily to spot errors. > Tools tried: > * [ErrorProne|https://errorprone.info/] > * [fb-infer|https://fbinfer.com/] -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3179) Run a static analyzer
Gautier DI FOLCO created JAMES-3179: --- Summary: Run a static analyzer Key: JAMES-3179 URL: https://issues.apache.org/jira/browse/JAMES-3179 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO It might be a good idea to check potential mistakes easily to spot errors. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Comment Edited] (JAMES-3167) Reactify ACL, MailboxMapper, and MessageIdMapper
[ https://issues.apache.org/jira/browse/JAMES-3167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17095231#comment-17095231 ] Gautier DI FOLCO edited comment on JAMES-3167 at 4/29/20, 8:18 AM: --- This PR contributed to it: [https://github.com/linagora/james-project/pull/3281] was (Author: gdifolco): This PR contributed to it: > Reactify ACL, MailboxMapper, and MessageIdMapper > > > Key: JAMES-3167 > URL: https://issues.apache.org/jira/browse/JAMES-3167 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > In order to continue efficiency improvements, ACL, MailboxMapper, and > MessageIdMapper should use Reactor. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3167) Reactify ACL, MailboxMapper, and MessageIdMapper
[ https://issues.apache.org/jira/browse/JAMES-3167?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17095231#comment-17095231 ] Gautier DI FOLCO commented on JAMES-3167: - This PR contributed to it: > Reactify ACL, MailboxMapper, and MessageIdMapper > > > Key: JAMES-3167 > URL: https://issues.apache.org/jira/browse/JAMES-3167 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Minor > > In order to continue efficiency improvements, ACL, MailboxMapper, and > MessageIdMapper should use Reactor. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3167) Reactify ACL, MailboxMapper, and MessageIdMapper
Gautier DI FOLCO created JAMES-3167: --- Summary: Reactify ACL, MailboxMapper, and MessageIdMapper Key: JAMES-3167 URL: https://issues.apache.org/jira/browse/JAMES-3167 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO In order to continue efficiency improvements, ACL, MailboxMapper, and MessageIdMapper should use Reactor. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3157) Inject blobs credentials
[ https://issues.apache.org/jira/browse/JAMES-3157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17093314#comment-17093314 ] Gautier DI FOLCO commented on JAMES-3157: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3334] > Inject blobs credentials > > > Key: JAMES-3157 > URL: https://issues.apache.org/jira/browse/JAMES-3157 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Major > > When running the benchmarks, we should be able to target different profiles, > targeting or not an external blobs store. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3157) Inject blobs credentials
Gautier DI FOLCO created JAMES-3157: --- Summary: Inject blobs credentials Key: JAMES-3157 URL: https://issues.apache.org/jira/browse/JAMES-3157 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO When running the benchmarks, we should be able to target different profiles, targeting or not an external blobs store. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3150) Implement Garbage Colletion for blobs
[ https://issues.apache.org/jira/browse/JAMES-3150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17083915#comment-17083915 ] Gautier DI FOLCO commented on JAMES-3150: - This PR contributed to it: https://github.com/linagora/james-project/pull/3220 > Implement Garbage Colletion for blobs > - > > Key: JAMES-3150 > URL: https://issues.apache.org/jira/browse/JAMES-3150 > Project: James Server > Issue Type: Improvement > Components: Blob >Affects Versions: 3.3.0 >Reporter: Gautier DI FOLCO >Priority: Major > > With the blob store deduplication, dropping a blob in a distributed > environment is impossible if we want to keep an acceptable concurrency level. > A Garbage Collector should be created in order to drop old blobs. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3150) Implement Garbage Colletion for blobs
Gautier DI FOLCO created JAMES-3150: --- Summary: Implement Garbage Colletion for blobs Key: JAMES-3150 URL: https://issues.apache.org/jira/browse/JAMES-3150 Project: James Server Issue Type: Improvement Components: Blob Affects Versions: 3.3.0 Reporter: Gautier DI FOLCO With the blob store deduplication, dropping a blob in a distributed environment is impossible if we want to keep an acceptable concurrency level. A Garbage Collector should be created in order to drop old blobs. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3144) Use ElasticSearch reactively
[ https://issues.apache.org/jira/browse/JAMES-3144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17077184#comment-17077184 ] Gautier DI FOLCO commented on JAMES-3144: - This PR contributed to it. > Use ElasticSearch reactively > > > Key: JAMES-3144 > URL: https://issues.apache.org/jira/browse/JAMES-3144 > Project: James Server > Issue Type: Improvement > Components: elasticsearch >Affects Versions: 3.4.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > ElasticSearch is our last backend to be used synchronously, we can have gains > integrating it with our reactive infrastructure. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3144) Use ElasticSearch reactively
Gautier DI FOLCO created JAMES-3144: --- Summary: Use ElasticSearch reactively Key: JAMES-3144 URL: https://issues.apache.org/jira/browse/JAMES-3144 Project: James Server Issue Type: Improvement Components: elasticsearch Affects Versions: 3.4.0 Reporter: Gautier DI FOLCO ElasticSearch is our last backend to be used synchronously, we can have gains integrating it with our reactive infrastructure. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3134) James should not start versin RabbitMQ version is not correct
[ https://issues.apache.org/jira/browse/JAMES-3134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17076429#comment-17076429 ] Gautier DI FOLCO commented on JAMES-3134: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3271] > James should not start versin RabbitMQ version is not correct > - > > Key: JAMES-3134 > URL: https://issues.apache.org/jira/browse/JAMES-3134 > Project: James Server > Issue Type: Improvement > Components: rabbitmq >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > James starts without difficulty when the RabbitMQ version is not correct, a > startupcheck should be added. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3134) James should not start versin RabbitMQ version is not correct
Gautier DI FOLCO created JAMES-3134: --- Summary: James should not start versin RabbitMQ version is not correct Key: JAMES-3134 URL: https://issues.apache.org/jira/browse/JAMES-3134 Project: James Server Issue Type: Improvement Components: rabbitmq Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO James starts without difficulty when the RabbitMQ version is not correct, a startupcheck should be added. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3125) GETting full mail details in mailQueue
[ https://issues.apache.org/jira/browse/JAMES-3125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17065413#comment-17065413 ] Gautier DI FOLCO commented on JAMES-3125: - It's a privacy violation, if we do not allow an admin to read users' messages, why should we allow him/her to read soon-to-be-delivered messages? > GETting full mail details in mailQueue > -- > > Key: JAMES-3125 > URL: https://issues.apache.org/jira/browse/JAMES-3125 > Project: James Server > Issue Type: Improvement >Reporter: Raphael Ouazana >Priority: Major > > > James' mail queue can be used to browse currently enqueued mails, waiting for > processing. > We can already administrate mail queues with > http://james.apache.org/server/manage-webadmin.html#Administrating_mail_queues > The goal of this ticket is two implement 2 new end points: > curl -XGET -H 'Accept: application/json' > http://ip:port/mailQueues/spool/mails/0123456789Will return{"name": > "mail-key-1","sender": "sen...@domain.com","recipients": > ["recipie...@domain.com", "recipie...@domain.com"],"nextDelivery": "Thu > 12 Apr. 2020","state": "address-error","error": "A small message > explaining what happened to that mail...","remoteHost": > "111.222.333.444","remoteAddr": "127.0.0.1","lastUpdated": null}curl > -XGET -H 'Accept: message/rfc822' > http://ip:port/mailQueues/spool/mails/0123456789Will return the EML itself > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Comment Edited] (JAMES-3121) Tune Cassandra Tables
[ https://issues.apache.org/jira/browse/JAMES-3121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17061870#comment-17061870 ] Gautier DI FOLCO edited comment on JAMES-3121 at 3/19/20, 7:52 AM: --- This PR contributed to it: https://github.com/linagora/james-project/pull/3213 was (Author: gdifolco): This PR contributed to it: [https://github.com/linagora/james-project/pull/3212] > Tune Cassandra Tables > - > > Key: JAMES-3121 > URL: https://issues.apache.org/jira/browse/JAMES-3121 > Project: James Server > Issue Type: Improvement > Components: cassandra >Reporter: Gautier DI FOLCO >Priority: Minor > > Our usages of Cassandra differ from table to table, different Compaction > strategies and read_repair_chance can be applied in order to comply with > Cassandra optimal behavior. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3121) Tune Cassandra Tables
[ https://issues.apache.org/jira/browse/JAMES-3121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17061870#comment-17061870 ] Gautier DI FOLCO commented on JAMES-3121: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3212] > Tune Cassandra Tables > - > > Key: JAMES-3121 > URL: https://issues.apache.org/jira/browse/JAMES-3121 > Project: James Server > Issue Type: Improvement > Components: cassandra >Reporter: Gautier DI FOLCO >Priority: Minor > > Our usages of Cassandra differ from table to table, different Compaction > strategies and read_repair_chance can be applied in order to comply with > Cassandra optimal behavior. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3121) Tune Cassandra Tables
Gautier DI FOLCO created JAMES-3121: --- Summary: Tune Cassandra Tables Key: JAMES-3121 URL: https://issues.apache.org/jira/browse/JAMES-3121 Project: James Server Issue Type: Improvement Components: cassandra Reporter: Gautier DI FOLCO Our usages of Cassandra differ from table to table, different Compaction strategies and read_repair_chance can be applied in order to comply with Cassandra optimal behavior. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3119) SMTP is brittle
[ https://issues.apache.org/jira/browse/JAMES-3119?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17061747#comment-17061747 ] Gautier DI FOLCO commented on JAMES-3119: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3212] > SMTP is brittle > --- > > Key: JAMES-3119 > URL: https://issues.apache.org/jira/browse/JAMES-3119 > Project: James Server > Issue Type: Improvement > Components: SMTPServer >Reporter: Gautier DI FOLCO >Priority: Critical > > Most of the SMTP code relies on null-aware operations, leading to NPEs: > > {code:java} > und on UPN: > java.lang.NullPointerException: null > at > org.apache.james.protocols.smtp.core.ReceivedDataLineFilter.headers(ReceivedDataLineFilter.java:104) > at > org.apache.james.protocols.smtp.core.AbstractAddHeadersFilter.addHeaders(AbstractAddHeadersFilter.java:83) > at > org.apache.james.protocols.smtp.core.AbstractAddHeadersFilter.onHeadersLine(AbstractAddHeadersFilter.java:71) > at > org.apache.james.protocols.smtp.core.SeparatingDataLineFilter.onLine(SeparatingDataLineFilter.java:63) > at > org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:101) > at > org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:88) > at > org.apache.james.protocols.smtp.core.esmtp.MailSizeEsmtpExtension.onLine(MailSizeEsmtpExtension.java:174) > at > org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:101) > at > org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:88) > at > org.apache.james.protocols.netty.LineHandlerUpstreamHandler.messageReceived(LineHandlerUpstreamHandler.java:50) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at > org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.messageReceived(SimpleChannelUpstreamHandler.java:124) > at > org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) > at > org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) > at > org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) > at > org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43) > at > org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67) > at > org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3119) SMTP is brittle
Gautier DI FOLCO created JAMES-3119: --- Summary: SMTP is brittle Key: JAMES-3119 URL: https://issues.apache.org/jira/browse/JAMES-3119 Project: James Server Issue Type: Improvement Components: SMTPServer Reporter: Gautier DI FOLCO Most of the SMTP code relies on null-aware operations, leading to NPEs: {code:java} und on UPN: java.lang.NullPointerException: null at org.apache.james.protocols.smtp.core.ReceivedDataLineFilter.headers(ReceivedDataLineFilter.java:104) at org.apache.james.protocols.smtp.core.AbstractAddHeadersFilter.addHeaders(AbstractAddHeadersFilter.java:83) at org.apache.james.protocols.smtp.core.AbstractAddHeadersFilter.onHeadersLine(AbstractAddHeadersFilter.java:71) at org.apache.james.protocols.smtp.core.SeparatingDataLineFilter.onLine(SeparatingDataLineFilter.java:63) at org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:101) at org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:88) at org.apache.james.protocols.smtp.core.esmtp.MailSizeEsmtpExtension.onLine(MailSizeEsmtpExtension.java:174) at org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:101) at org.apache.james.protocols.smtp.core.DataCmdHandler$DataLineFilterWrapper.onLine(DataCmdHandler.java:88) at org.apache.james.protocols.netty.LineHandlerUpstreamHandler.messageReceived(LineHandlerUpstreamHandler.java:50) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.messageReceived(SimpleChannelUpstreamHandler.java:124) at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791) at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43) at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67) at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3118) Incorrect error message when adding an alias
[ https://issues.apache.org/jira/browse/JAMES-3118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17060279#comment-17060279 ] Gautier DI FOLCO commented on JAMES-3118: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3207] > Incorrect error message when adding an alias > > > Key: JAMES-3118 > URL: https://issues.apache.org/jira/browse/JAMES-3118 > Project: James Server > Issue Type: Improvement > Components: webadmin >Reporter: Gautier DI FOLCO >Priority: Trivial > > In some cases when adding an alias for a user in a domain not handled by > James, we get the message > {{}} > {code:java} > {"statusCode":400,"type":"InvalidArgument","message":"The alias source exists > as an user already","details":null}{code} > {{}} > in this case the issue is not that the user does not exist. In can be caused > either by alias = user case or user in a non handled domain. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3118) Incorrect error message when adding an alias
Gautier DI FOLCO created JAMES-3118: --- Summary: Incorrect error message when adding an alias Key: JAMES-3118 URL: https://issues.apache.org/jira/browse/JAMES-3118 Project: James Server Issue Type: Improvement Components: webadmin Reporter: Gautier DI FOLCO In some cases when adding an alias for a user in a domain not handled by James, we get the message {{}} {code:java} {"statusCode":400,"type":"InvalidArgument","message":"The alias source exists as an user already","details":null}{code} {{}} in this case the issue is not that the user does not exist. In can be caused either by alias = user case or user in a non handled domain. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3110) Be able to limit Listener's Queue Size
[ https://issues.apache.org/jira/browse/JAMES-3110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17056064#comment-17056064 ] Gautier DI FOLCO commented on JAMES-3110: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3195] > Be able to limit Listener's Queue Size > -- > > Key: JAMES-3110 > URL: https://issues.apache.org/jira/browse/JAMES-3110 > Project: James Server > Issue Type: Bug > Components: eventbus >Reporter: Gautier DI FOLCO >Priority: Minor > > Some listeners (such as SpamAssassinListener) are not critical and the queue > can be limited in order to prevent leaks. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3110) Be able to limit Listener's Queue Size
Gautier DI FOLCO created JAMES-3110: --- Summary: Be able to limit Listener's Queue Size Key: JAMES-3110 URL: https://issues.apache.org/jira/browse/JAMES-3110 Project: James Server Issue Type: Bug Components: eventbus Reporter: Gautier DI FOLCO Some listeners (such as SpamAssassinListener) are not critical and the queue can be limited in order to prevent leaks. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3103) EventBus queue leak
[ https://issues.apache.org/jira/browse/JAMES-3103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17053386#comment-17053386 ] Gautier DI FOLCO commented on JAMES-3103: - Associated fix: [https://github.com/linagora/james-project/pull/3182] > EventBus queue leak > --- > > Key: JAMES-3103 > URL: https://issues.apache.org/jira/browse/JAMES-3103 > Project: James Server > Issue Type: Bug > Components: eventbus >Affects Versions: 3.4.0 >Reporter: Gautier DI FOLCO >Priority: Major > > When distributed James starts, it starts the event bus, which create a random > non *auto-delete* queue. > Consequently, when James is stopped, no consumer will ever be bound, creating > a leak. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3103) EventBus queue leak
Gautier DI FOLCO created JAMES-3103: --- Summary: EventBus queue leak Key: JAMES-3103 URL: https://issues.apache.org/jira/browse/JAMES-3103 Project: James Server Issue Type: Bug Components: eventbus Affects Versions: 3.4.0 Reporter: Gautier DI FOLCO When distributed James starts, it starts the event bus, which create a random non *auto-delete* queue. Consequently, when James is stopped, no consumer will ever be bound, creating a leak. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-3085) RabbitMQ channel borrowing timeout
[ https://issues.apache.org/jira/browse/JAMES-3085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-3085. - Fix Version/s: 3.5.0 Resolution: Fixed > RabbitMQ channel borrowing timeout > -- > > Key: JAMES-3085 > URL: https://issues.apache.org/jira/browse/JAMES-3085 > Project: James Server > Issue Type: Bug >Reporter: Gautier DI FOLCO >Priority: Critical > Fix For: 3.5.0 > > > Having a given load we encounter this exception: > > {code:java} > java.util.NoSuchElementException: Timeout waiting for idle object > at > org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:439) > at > org.apache.james.backends.rabbitmq.ReactorRabbitMQChannelPool.borrow(ReactorRabbitMQChannelPool.java:144) > at reactor.core.publisher.MonoCallable.call(MonoCallable.java:91) > at > reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:126) > at > reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) > at reactor.core.publisher.Mono.subscribe(Mono.java:4072) > at > reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:207) > at > reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:81) > at > reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:823) > at > reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:589) > at > reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:892) > at > reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:986) > at > reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.onComplete(MonoSubscribeOn.java:160) > at > reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96) > at > reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96) > at > org.apache.james.mailbox.events.EventDispatcher.lambda$executeListener$6(EventDispatcher.java:109) > at > reactor.core.publisher.MonoFromPublisher.subscribe(MonoFromPublisher.java:55) > at reactor.core.publisher.Mono.subscribe(Mono.java:4087) > at > reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:124) > at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) > at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Suppressed: java.lang.Exception: Mono#block terminated with an error > at > reactor.core.publisher.MonoProcessor.block(MonoProcessor.java:186) > at > reactor.core.publisher.MonoProcessor.block(MonoProcessor.java:152) > at > org.apache.james.mailbox.store.StoreMessageManager.setFlags(StoreMessageManager.java:639) > at > org.apache.james.imap.processor.StoreProcessor.setFlags(StoreProcessor.java:232) > at > org.apache.james.imap.processor.StoreProcessor.processRequest(StoreProcessor.java:169) > at > org.apache.james.imap.processor.StoreProcessor.processRequest(StoreProcessor.java:64) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:95) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:72) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:57) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apach
[jira] [Commented] (JAMES-3086) Mail Server Load Test giving very low throughput
[ https://issues.apache.org/jira/browse/JAMES-3086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17052209#comment-17052209 ] Gautier DI FOLCO commented on JAMES-3086: - It should works with: {code:java} $ docker run -d --name=elasticsearch --env 'discovery.type=single-node' docker.elastic.co/elasticsearch/elasticsearch:6.3.2{code} ES 6.8.3 may be compatible, but we have not tested it. > Mail Server Load Test giving very low throughput > > > Key: JAMES-3086 > URL: https://issues.apache.org/jira/browse/JAMES-3086 > Project: James Server > Issue Type: Bug > Components: POP3Server, SMTPServer >Affects Versions: 3.3.0 >Reporter: Rashid Mahmood >Priority: Blocker > Attachments: executors-waiting-to-acquire.png, > image-2020-03-04-09-30-30-054.png, threaddump.txt > > > After functional tests, we are performing load tests against James Server > setup with Casandra/Elasticsearch(cassandra-ldap-guice) packaging option. > With JMeter constant throughput timer of 300 SMPT requests per seconds we are > achieving around 10 requests per seconds. Each Request is with 100KB > attachment. Observed CPU of the machine (where MailServer running) was over > exhausted. > Many of the threads in thread dump were in awaiting notifications state. > I see around 100 threads from Elastic search, is there any configuration to > control this? > Where is the bottleneck? > !image-2020-03-04-09-30-30-054.png! > > See the thread dump in attachment. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3086) Mail Server Load Test giving very low throughput
[ https://issues.apache.org/jira/browse/JAMES-3086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051966#comment-17051966 ] Gautier DI FOLCO commented on JAMES-3086: - Actually, there is not tuning available to reduce threads blocking. A huge effort have been made since the 3.4 to improve James' efficiency, by using Reactor. Our last benchmarks shown that we only use 20-30 threads under heavy loads. > Mail Server Load Test giving very low throughput > > > Key: JAMES-3086 > URL: https://issues.apache.org/jira/browse/JAMES-3086 > Project: James Server > Issue Type: Bug > Components: POP3Server, SMTPServer >Affects Versions: 3.3.0 >Reporter: Rashid Mahmood >Priority: Blocker > Attachments: executors-waiting-to-acquire.png, > image-2020-03-04-09-30-30-054.png, threaddump.txt > > > After functional tests, we are performing load tests against James Server > setup with Casandra/Elasticsearch(cassandra-ldap-guice) packaging option. > With JMeter constant throughput timer of 300 SMPT requests per seconds we are > achieving around 10 requests per seconds. Each Request is with 100KB > attachment. Observed CPU of the machine (where MailServer running) was over > exhausted. > Many of the threads in thread dump were in awaiting notifications state. > I see around 100 threads from Elastic search, is there any configuration to > control this? > Where is the bottleneck? > !image-2020-03-04-09-30-30-054.png! > > See the thread dump in attachment. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3086) Mail Server Load Test giving very low throughput
[ https://issues.apache.org/jira/browse/JAMES-3086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051258#comment-17051258 ] Gautier DI FOLCO commented on JAMES-3086: - ElasticSearch is used for metrics and mailboxes, jpa-spring is the only product which does not use it. > Mail Server Load Test giving very low throughput > > > Key: JAMES-3086 > URL: https://issues.apache.org/jira/browse/JAMES-3086 > Project: James Server > Issue Type: Bug > Components: POP3Server, SMTPServer >Affects Versions: 3.3.0 >Reporter: Rashid Mahmood >Priority: Blocker > Attachments: executors-waiting-to-acquire.png, > image-2020-03-04-09-30-30-054.png, threaddump.txt > > > After functional tests, we are performing load tests against James Server > setup with Casandra/Elasticsearch(cassandra-ldap-guice) packaging option. > With JMeter constant throughput timer of 300 SMPT requests per seconds we are > achieving around 10 requests per seconds. Each Request is with 100KB > attachment. Observed CPU of the machine (where MailServer running) was over > exhausted. > Many of the threads in thread dump were in awaiting notifications state. > I see around 100 threads from Elastic search, is there any configuration to > control this? > Where is the bottleneck? > !image-2020-03-04-09-30-30-054.png! > > See the thread dump in attachment. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Comment Edited] (JAMES-3084) Missing James logs in benchmarks
[ https://issues.apache.org/jira/browse/JAMES-3084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1705#comment-1705 ] Gautier DI FOLCO edited comment on JAMES-3084 at 3/3/20 8:32 AM: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3167] was (Author: gdifolco): This PR contributed to it: [https://github.com/linagora/james-project/pull/3168] > Missing James logs in benchmarks > > > Key: JAMES-3084 > URL: https://issues.apache.org/jira/browse/JAMES-3084 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > When the benchmarks ran, james log are not presents, leading to > approximations for interpreting errors in Gatling reports. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3084) Missing James logs in benchmarks
[ https://issues.apache.org/jira/browse/JAMES-3084?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1705#comment-1705 ] Gautier DI FOLCO commented on JAMES-3084: - This PR contributed to it: [https://github.com/linagora/james-project/pull/3168] > Missing James logs in benchmarks > > > Key: JAMES-3084 > URL: https://issues.apache.org/jira/browse/JAMES-3084 > Project: James Server > Issue Type: Improvement >Reporter: Gautier DI FOLCO >Priority: Trivial > > When the benchmarks ran, james log are not presents, leading to > approximations for interpreting errors in Gatling reports. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3085) RabbitMQ channel borrowing timeout
[ https://issues.apache.org/jira/browse/JAMES-3085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=1704#comment-1704 ] Gautier DI FOLCO commented on JAMES-3085: - This PR contributed to it: https://github.com/linagora/james-project/pull/3168 > RabbitMQ channel borrowing timeout > -- > > Key: JAMES-3085 > URL: https://issues.apache.org/jira/browse/JAMES-3085 > Project: James Server > Issue Type: Bug >Reporter: Gautier DI FOLCO >Priority: Critical > > Having a given load we encounter this exception: > > {code:java} > java.util.NoSuchElementException: Timeout waiting for idle object > at > org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:439) > at > org.apache.james.backends.rabbitmq.ReactorRabbitMQChannelPool.borrow(ReactorRabbitMQChannelPool.java:144) > at reactor.core.publisher.MonoCallable.call(MonoCallable.java:91) > at > reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:126) > at > reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) > at reactor.core.publisher.Mono.subscribe(Mono.java:4072) > at > reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:207) > at > reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:81) > at > reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:823) > at > reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:589) > at > reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:892) > at > reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:986) > at > reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.onComplete(MonoSubscribeOn.java:160) > at > reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96) > at > reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96) > at > org.apache.james.mailbox.events.EventDispatcher.lambda$executeListener$6(EventDispatcher.java:109) > at > reactor.core.publisher.MonoFromPublisher.subscribe(MonoFromPublisher.java:55) > at reactor.core.publisher.Mono.subscribe(Mono.java:4087) > at > reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:124) > at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) > at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at java.lang.Thread.run(Thread.java:748) > Suppressed: java.lang.Exception: Mono#block terminated with an error > at > reactor.core.publisher.MonoProcessor.block(MonoProcessor.java:186) > at > reactor.core.publisher.MonoProcessor.block(MonoProcessor.java:152) > at > org.apache.james.mailbox.store.StoreMessageManager.setFlags(StoreMessageManager.java:639) > at > org.apache.james.imap.processor.StoreProcessor.setFlags(StoreProcessor.java:232) > at > org.apache.james.imap.processor.StoreProcessor.processRequest(StoreProcessor.java:169) > at > org.apache.james.imap.processor.StoreProcessor.processRequest(StoreProcessor.java:64) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:95) > at > org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:72) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:57) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) > at > org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractCha
[jira] [Created] (JAMES-3085) RabbitMQ channel borrowing timeout
Gautier DI FOLCO created JAMES-3085: --- Summary: RabbitMQ channel borrowing timeout Key: JAMES-3085 URL: https://issues.apache.org/jira/browse/JAMES-3085 Project: James Server Issue Type: Bug Reporter: Gautier DI FOLCO Having a given load we encounter this exception: {code:java} java.util.NoSuchElementException: Timeout waiting for idle object at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:439) at org.apache.james.backends.rabbitmq.ReactorRabbitMQChannelPool.borrow(ReactorRabbitMQChannelPool.java:144) at reactor.core.publisher.MonoCallable.call(MonoCallable.java:91) at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:126) at reactor.core.publisher.MonoFlatMapMany.subscribeOrReturn(MonoFlatMapMany.java:49) at reactor.core.publisher.Mono.subscribe(Mono.java:4072) at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:207) at reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onComplete(MonoIgnoreElements.java:81) at reactor.core.publisher.FluxFlatMap$FlatMapMain.checkTerminated(FluxFlatMap.java:823) at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:589) at reactor.core.publisher.FluxFlatMap$FlatMapMain.innerComplete(FluxFlatMap.java:892) at reactor.core.publisher.FluxFlatMap$FlatMapInner.onComplete(FluxFlatMap.java:986) at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.onComplete(MonoSubscribeOn.java:160) at reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96) at reactor.core.publisher.MonoNext$NextSubscriber.onComplete(MonoNext.java:96) at org.apache.james.mailbox.events.EventDispatcher.lambda$executeListener$6(EventDispatcher.java:109) at reactor.core.publisher.MonoFromPublisher.subscribe(MonoFromPublisher.java:55) at reactor.core.publisher.Mono.subscribe(Mono.java:4087) at reactor.core.publisher.MonoSubscribeOn$SubscribeOnSubscriber.run(MonoSubscribeOn.java:124) at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84) at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Suppressed: java.lang.Exception: Mono#block terminated with an error at reactor.core.publisher.MonoProcessor.block(MonoProcessor.java:186) at reactor.core.publisher.MonoProcessor.block(MonoProcessor.java:152) at org.apache.james.mailbox.store.StoreMessageManager.setFlags(StoreMessageManager.java:639) at org.apache.james.imap.processor.StoreProcessor.setFlags(StoreProcessor.java:232) at org.apache.james.imap.processor.StoreProcessor.processRequest(StoreProcessor.java:169) at org.apache.james.imap.processor.StoreProcessor.processRequest(StoreProcessor.java:64) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:95) at org.apache.james.imap.processor.AbstractMailboxProcessor.doProcess(AbstractMailboxProcessor.java:72) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:57) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66) at org.apache.james.imap.processor.base.AbstractChainedProcessor.process(AbstractChainedProcessor.java:66)
[jira] [Created] (JAMES-3084) Missing James logs in benchmarks
Gautier DI FOLCO created JAMES-3084: --- Summary: Missing James logs in benchmarks Key: JAMES-3084 URL: https://issues.apache.org/jira/browse/JAMES-3084 Project: James Server Issue Type: Improvement Reporter: Gautier DI FOLCO When the benchmarks ran, james log are not presents, leading to approximations for interpreting errors in Gatling reports. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3077) Fix benchmark files
[ https://issues.apache.org/jira/browse/JAMES-3077?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17046478#comment-17046478 ] Gautier DI FOLCO commented on JAMES-3077: - Contributed to it: [https://github.com/linagora/james-project/pull/3153] > Fix benchmark files > --- > > Key: JAMES-3077 > URL: https://issues.apache.org/jira/browse/JAMES-3077 > Project: James Server > Issue Type: Improvement >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Blocker > > Benchmarks can not be run for a while due to several build changes -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3077) Fix benchmark files
Gautier DI FOLCO created JAMES-3077: --- Summary: Fix benchmark files Key: JAMES-3077 URL: https://issues.apache.org/jira/browse/JAMES-3077 Project: James Server Issue Type: Improvement Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO Benchmarks can not be run for a while due to several build changes -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3067) Allowed From headers recursion
[ https://issues.apache.org/jira/browse/JAMES-3067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17038986#comment-17038986 ] Gautier DI FOLCO commented on JAMES-3067: - [https://github.com/linagora/james-project/pull/3121] from the naive implementation > Allowed From headers recursion > -- > > Key: JAMES-3067 > URL: https://issues.apache.org/jira/browse/JAMES-3067 > Project: James Server > Issue Type: Improvement > Components: JMAP, SMTPServer >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Assignee: Antoine Duprat >Priority: Minor > > In order to go further than the JAMES-3032 we need to go a recursion-level > further. > They are two propositions now: > * Have a parameterized number of recursions, doing multiple queries on the > current scheme > * Have a specific projection maintaining all the connected aliases > We should discuss it -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
[ https://issues.apache.org/jira/browse/JAMES-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17038960#comment-17038960 ] Gautier DI FOLCO commented on JAMES-3066: - [https://github.com/linagora/james-project/pull/3120] contributed to fix some issues introduced by previous constributions > [WebAdmin] Add end point for user's allowed From headers querying > - > > Key: JAMES-3066 > URL: https://issues.apache.org/jira/browse/JAMES-3066 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > Following JAMES-3032 which allows different From header values, an end point > should be added in order to query all the possible values of a given user. > For example: > > {code:java} > GET /users/b...@domain.tld/allowedFromHeaders > ["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3067) Allowed From headers recursion
[ https://issues.apache.org/jira/browse/JAMES-3067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17038222#comment-17038222 ] Gautier DI FOLCO commented on JAMES-3067: - Regarding the solutions, they have major drawbacks: * "Have a parameterized number of recursions, doing multiple queries on the current scheme" The number of queries can easily explode, overloading Cassandra * "Have a specific projection maintaining all the connected aliases" Numerous concurrency issues: if you have the following scheme: {code:java} alias2 -> alias1 -> alias0 -> user{code} The projection might look like {code:java} (user, [alias0, alias1, alias2]){code} Dropping *alias0* will not result in dropping it from the projection, you will also drop *alias1* and *alias2*. It will requires a strong coherency. If we want to go in this direction, we will have to implement it with event sourcing. > Allowed From headers recursion > -- > > Key: JAMES-3067 > URL: https://issues.apache.org/jira/browse/JAMES-3067 > Project: James Server > Issue Type: Improvement > Components: JMAP, SMTPServer >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Assignee: Antoine Duprat >Priority: Minor > > In order to go further than the JAMES-3032 we need to go a recursion-level > further. > They are two propositions now: > * Have a parameterized number of recursions, doing multiple queries on the > current scheme > * Have a specific projection maintaining all the connected aliases > We should discuss it -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3068) Typos manage-webadmin.html
[ https://issues.apache.org/jira/browse/JAMES-3068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17037074#comment-17037074 ] Gautier DI FOLCO commented on JAMES-3068: - PR: [https://github.com/linagora/james-project/pull/3116] > Typos manage-webadmin.html > -- > > Key: JAMES-3068 > URL: https://issues.apache.org/jira/browse/JAMES-3068 > Project: James Server > Issue Type: Improvement > Components: Documentation >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Trivial > > manage-webadmin.html contain a large number of markup errors: > > * broken link > * missing lines > * not highlighted params -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3068) Typos manage-webadmin.html
Gautier DI FOLCO created JAMES-3068: --- Summary: Typos manage-webadmin.html Key: JAMES-3068 URL: https://issues.apache.org/jira/browse/JAMES-3068 Project: James Server Issue Type: Improvement Components: Documentation Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO manage-webadmin.html contain a large number of markup errors: * broken link * missing lines * not highlighted params -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3067) Allowed From headers recursion
Gautier DI FOLCO created JAMES-3067: --- Summary: Allowed From headers recursion Key: JAMES-3067 URL: https://issues.apache.org/jira/browse/JAMES-3067 Project: James Server Issue Type: Improvement Components: JMAP, SMTPServer Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO Assignee: Antoine Duprat In order to go further than the JAMES-3032 we need to go a recursion-level further. They are two propositions now: * Have a parameterized number of recursions, doing multiple queries on the current scheme * Have a specific projection maintaining all the connected aliases We should discuss it -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
[ https://issues.apache.org/jira/browse/JAMES-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3066: Description: Following JAMES-3032 which allows different From header values, an end point should be added in order to query all the possible values of a given user. For example: {code:java} GET /users/b...@domain.tld/allowedFromHeaders ["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] {code} was: Following JAMES-3032 which allows different From header values, an end point should be added in order to query all the possible values of a given user. For example: GET /users/b...@domain.tld/allowedFromHeaders["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] > [WebAdmin] Add end point for user's allowed From headers querying > - > > Key: JAMES-3066 > URL: https://issues.apache.org/jira/browse/JAMES-3066 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > Following JAMES-3032 which allows different From header values, an end point > should be added in order to query all the possible values of a given user. > For example: > > {code:java} > GET /users/b...@domain.tld/allowedFromHeaders > ["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
[ https://issues.apache.org/jira/browse/JAMES-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17036753#comment-17036753 ] Gautier DI FOLCO commented on JAMES-3066: - Updated! Thanks > [WebAdmin] Add end point for user's allowed From headers querying > - > > Key: JAMES-3066 > URL: https://issues.apache.org/jira/browse/JAMES-3066 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > Following JAMES-3032 which allows different From header values, an end point > should be added in order to query all the possible values of a given user. > For example: > > {code:java} > GET /users/b...@domain.tld/allowedFromHeaders > ["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] > {code} > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Updated] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
[ https://issues.apache.org/jira/browse/JAMES-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO updated JAMES-3066: Description: Following JAMES-3032 which allows different From header values, an end point should be added in order to query all the possible values of a given user. For example: GET /users/b...@domain.tld/allowedFromHeaders["b...@domain.tld", "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] was:Following JAMES-3032 which allows different From header values, an end point should be added in order to query all the possible values of a given user. > [WebAdmin] Add end point for user's allowed From headers querying > - > > Key: JAMES-3066 > URL: https://issues.apache.org/jira/browse/JAMES-3066 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > Following JAMES-3032 which allows different From header values, an end point > should be added in order to query all the possible values of a given user. > For example: > GET /users/b...@domain.tld/allowedFromHeaders["b...@domain.tld", > "b...@alias.tld", "al...@domain.tld", "al...@alias.tld"] > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
[ https://issues.apache.org/jira/browse/JAMES-3066?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17036239#comment-17036239 ] Gautier DI FOLCO commented on JAMES-3066: - See: https://github.com/linagora/james-project/pull/3104 > [WebAdmin] Add end point for user's allowed From headers querying > - > > Key: JAMES-3066 > URL: https://issues.apache.org/jira/browse/JAMES-3066 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > Following JAMES-3032 which allows different From header values, an end point > should be added in order to query all the possible values of a given user. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-3066) [WebAdmin] Add end point for user's allowed From headers querying
Gautier DI FOLCO created JAMES-3066: --- Summary: [WebAdmin] Add end point for user's allowed From headers querying Key: JAMES-3066 URL: https://issues.apache.org/jira/browse/JAMES-3066 Project: James Server Issue Type: Improvement Components: webadmin Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO Following JAMES-3032 which allows different From header values, an end point should be added in order to query all the possible values of a given user. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2973) JMAP does not access to "Outbox"
[ https://issues.apache.org/jira/browse/JAMES-2973?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2973. - Fix Version/s: 3.5.0 Resolution: Fixed > JMAP does not access to "Outbox" > > > Key: JAMES-2973 > URL: https://issues.apache.org/jira/browse/JAMES-2973 > Project: James Server > Issue Type: Improvement > Components: IMAPServer, JMAP, mailbox, SMTPServer >Affects Versions: 3.4.0 >Reporter: Gautier DI FOLCO >Assignee: Antoine Duprat >Priority: Minor > Fix For: 3.5.0 > > > After sending a Message, JMAP does not see it in "Outbox" -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2973) JMAP does not access to "Outbox"
[ https://issues.apache.org/jira/browse/JAMES-2973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16969342#comment-16969342 ] Gautier DI FOLCO commented on JAMES-2973: - Can not reproduce, here is the test: [https://github.com/linagora/james-project/pull/2844] > JMAP does not access to "Outbox" > > > Key: JAMES-2973 > URL: https://issues.apache.org/jira/browse/JAMES-2973 > Project: James Server > Issue Type: Improvement > Components: IMAPServer, JMAP, mailbox, SMTPServer >Affects Versions: 3.4.0 >Reporter: Gautier DI FOLCO >Assignee: Antoine Duprat >Priority: Minor > > After sending a Message, JMAP does not see it in "Outbox" -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-2973) JMAP does not access to "Outbox"
Gautier DI FOLCO created JAMES-2973: --- Summary: JMAP does not access to "Outbox" Key: JAMES-2973 URL: https://issues.apache.org/jira/browse/JAMES-2973 Project: James Server Issue Type: Improvement Components: IMAPServer, JMAP, mailbox, SMTPServer Affects Versions: 3.4.0 Reporter: Gautier DI FOLCO Assignee: Antoine Duprat After sending a Message, JMAP does not see it in "Outbox" -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2945) Changing Sender case avoid mail sending
[ https://issues.apache.org/jira/browse/JAMES-2945?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2945. - Fix Version/s: 3.5.0 Resolution: Fixed > Changing Sender case avoid mail sending > --- > > Key: JAMES-2945 > URL: https://issues.apache.org/jira/browse/JAMES-2945 > Project: James Server > Issue Type: Improvement > Components: SMTPServer >Affects Versions: 3.4.0 >Reporter: Gautier DI FOLCO >Priority: Minor > Fix For: 3.5.0 > > > When trying to send a mail with a Sender address case-different from the > authentication username, the mail is not sent. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2947) WebAdmin should prevent encoded "/" in a domain name at creation
[ https://issues.apache.org/jira/browse/JAMES-2947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2947. - Fix Version/s: 3.5.0 Resolution: Fixed > WebAdmin should prevent encoded "/" in a domain name at creation > > > Key: JAMES-2947 > URL: https://issues.apache.org/jira/browse/JAMES-2947 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.2.0 >Reporter: Gautier DI FOLCO >Priority: Minor > Fix For: 3.5.0 > > > According to https://tools.ietf.org/html/rfc1035, "/" should be forbidden in > a domain name, while it is possible to create such domains via the WebAdmin -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2954) WebAdmin's addresses groups error messages confusion
[ https://issues.apache.org/jira/browse/JAMES-2954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2954. - Fix Version/s: 3.5.0 Resolution: Fixed > WebAdmin's addresses groups error messages confusion > > > Key: JAMES-2954 > URL: https://issues.apache.org/jira/browse/JAMES-2954 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.3.0 >Reporter: Gautier DI FOLCO >Priority: Trivial > Fix For: 3.5.0 > > > When trying to put an invalid email in a valid group, WebAdmin's group > addresses API gives > {code:java} > The group is not an email address{code} > instead of > {code:java} > The member is not an email address > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2946) Incorrect error code returns when creating mail repository with non-supported protocol
[ https://issues.apache.org/jira/browse/JAMES-2946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2946. - Fix Version/s: 3.5.0 Resolution: Fixed > Incorrect error code returns when creating mail repository with non-supported > protocol > -- > > Key: JAMES-2946 > URL: https://issues.apache.org/jira/browse/JAMES-2946 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.2.0 >Reporter: Gautier DI FOLCO >Priority: Minor > Fix For: 3.5.0 > > > When creating a *MailRepository* with an unsupported, WebAdmin API returns > error 500 while 400 is more suitable. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2948) Username creation errors are cryptics
[ https://issues.apache.org/jira/browse/JAMES-2948?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2948. - Fix Version/s: 3.5.0 Resolution: Fixed > Username creation errors are cryptics > - > > Key: JAMES-2948 > URL: https://issues.apache.org/jira/browse/JAMES-2948 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.2.0 >Reporter: Gautier DI FOLCO >Priority: Minor > Fix For: 3.5.0 > > > As defined in > [http://james.apache.org/server/manage-webadmin.html#Create_a_user] > Usernames have some invariants. > While, creating an user have "Invalid user path" as error message. > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2953) WebAdmin's addresses forwards error messages confusion
[ https://issues.apache.org/jira/browse/JAMES-2953?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2953. - Fix Version/s: 3.5.0 Resolution: Fixed > WebAdmin's addresses forwards error messages confusion > -- > > Key: JAMES-2953 > URL: https://issues.apache.org/jira/browse/JAMES-2953 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.3.0 >Reporter: Gautier DI FOLCO >Priority: Trivial > Fix For: 3.5.0 > > > When an error arises in WebAdmin's addresses forwards due to an e-mail > address formation error, we only get this error message: > {code:java} > The forward is not an email address > {code} > Which is an issue since it deals with two addresses each time -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2939) Avoid case sensitivity in JMAP mailbox INBOX creation
[ https://issues.apache.org/jira/browse/JAMES-2939?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2939. - Fix Version/s: 3.5.0 Resolution: Fixed > Avoid case sensitivity in JMAP mailbox INBOX creation > - > > Key: JAMES-2939 > URL: https://issues.apache.org/jira/browse/JAMES-2939 > Project: James Server > Issue Type: Improvement > Components: JMAP >Affects Versions: 3.2.0 >Reporter: Gautier DI FOLCO >Assignee: Antoine Duprat >Priority: Minor > Fix For: 3.5.0 > > > It is possible to create "INBOX" and "iNbOx" at the same time via IMAP, which > lead to issues (noticeably in IMAP). > We should not allow it. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2954) WebAdmin's addresses groups error messages confusion
[ https://issues.apache.org/jira/browse/JAMES-2954?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16964021#comment-16964021 ] Gautier DI FOLCO commented on JAMES-2954: - Fix: [https://github.com/linagora/james-project/pull/2811] > WebAdmin's addresses groups error messages confusion > > > Key: JAMES-2954 > URL: https://issues.apache.org/jira/browse/JAMES-2954 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.3.0 >Reporter: Gautier DI FOLCO >Priority: Trivial > > When trying to put an invalid email in a valid group, WebAdmin's group > addresses API gives > {code:java} > The group is not an email address{code} > instead of > {code:java} > The member is not an email address > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-2954) WebAdmin's addresses groups error messages confusion
Gautier DI FOLCO created JAMES-2954: --- Summary: WebAdmin's addresses groups error messages confusion Key: JAMES-2954 URL: https://issues.apache.org/jira/browse/JAMES-2954 Project: James Server Issue Type: Improvement Components: webadmin Affects Versions: 3.3.0 Reporter: Gautier DI FOLCO When trying to put an invalid email in a valid group, WebAdmin's group addresses API gives {code:java} The group is not an email address{code} instead of {code:java} The member is not an email address {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2953) WebAdmin's addresses forwards error messages confusion
[ https://issues.apache.org/jira/browse/JAMES-2953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16963989#comment-16963989 ] Gautier DI FOLCO commented on JAMES-2953: - Fix: [https://github.com/linagora/james-project/pull/2810] > WebAdmin's addresses forwards error messages confusion > -- > > Key: JAMES-2953 > URL: https://issues.apache.org/jira/browse/JAMES-2953 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.3.0 >Reporter: Gautier DI FOLCO >Priority: Trivial > > When an error arises in WebAdmin's addresses forwards due to an e-mail > address formation error, we only get this error message: > {code:java} > The forward is not an email address > {code} > Which is an issue since it deals with two addresses each time -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-2953) WebAdmin's addresses forwards error messages confusion
Gautier DI FOLCO created JAMES-2953: --- Summary: WebAdmin's addresses forwards error messages confusion Key: JAMES-2953 URL: https://issues.apache.org/jira/browse/JAMES-2953 Project: James Server Issue Type: Improvement Components: webadmin Affects Versions: 3.3.0 Reporter: Gautier DI FOLCO When an error arises in WebAdmin's addresses forwards due to an e-mail address formation error, we only get this error message: {code:java} The forward is not an email address {code} Which is an issue since it deals with two addresses each time -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Resolved] (JAMES-2951) Deal with unicode Domains
[ https://issues.apache.org/jira/browse/JAMES-2951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gautier DI FOLCO resolved JAMES-2951. - Resolution: Not A Problem Relying on Guava directly avoid the problem to happen. > Deal with unicode Domains > - > > Key: JAMES-2951 > URL: https://issues.apache.org/jira/browse/JAMES-2951 > Project: James Server > Issue Type: Improvement >Affects Versions: 3.5.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > In order to fix JAMES-2947, the domain name space have been reduced > drastically. > It now excludes unicode characters as defined in > [https://tools.ietf.org/html/rfc4343#section-5] > We might want to support it. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Created] (JAMES-2951) Deal with unicode Domains
Gautier DI FOLCO created JAMES-2951: --- Summary: Deal with unicode Domains Key: JAMES-2951 URL: https://issues.apache.org/jira/browse/JAMES-2951 Project: James Server Issue Type: Improvement Affects Versions: 3.5.0 Reporter: Gautier DI FOLCO In order to fix JAMES-2947, the domain name space have been reduced drastically. It now excludes unicode characters as defined in [https://tools.ietf.org/html/rfc4343#section-5] We might want to support it. -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org
[jira] [Commented] (JAMES-2948) Username creation errors are cryptics
[ https://issues.apache.org/jira/browse/JAMES-2948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16963034#comment-16963034 ] Gautier DI FOLCO commented on JAMES-2948: - Fix: [https://github.com/linagora/james-project/pull/2805] > Username creation errors are cryptics > - > > Key: JAMES-2948 > URL: https://issues.apache.org/jira/browse/JAMES-2948 > Project: James Server > Issue Type: Improvement > Components: webadmin >Affects Versions: 3.2.0 >Reporter: Gautier DI FOLCO >Priority: Minor > > As defined in > [http://james.apache.org/server/manage-webadmin.html#Create_a_user] > Usernames have some invariants. > While, creating an user have "Invalid user path" as error message. > -- This message was sent by Atlassian Jira (v8.3.4#803005) - To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org