[jira] [Created] (JAMES-2557) NULL_SENDER throws an error in Dlp

2018-10-08 Thread Tellier Benoit (JIRA)
Tellier Benoit created JAMES-2557:
-

 Summary: NULL_SENDER throws an error in Dlp
 Key: JAMES-2557
 URL: https://issues.apache.org/jira/browse/JAMES-2557
 Project: James Server
  Issue Type: Bug
  Components: Mailet Contributions
Affects Versions: master, 3.1.0
Reporter: Tellier Benoit
 Fix For: 3.2.0


Watching Kibana logs I got this recurring error:


{code:java}
Exception calling dlp.Dlp: NULL sender '<>' do not have domain part
java.lang.IllegalStateException: NULL sender '<>' do not have domain part
at org.apache.james.core.MailAddress$1.getDomain(MailAddress.java:87)
at org.apache.james.transport.matchers.dlp.Dlp.matchingRule(Dlp.java:76)
at 
org.apache.james.transport.matchers.dlp.Dlp.lambda$findFirstMatchingRule$0(Dlp.java:72)
at java.util.Optional.flatMap(Optional.java:241)
at 
org.apache.james.transport.matchers.dlp.Dlp.findFirstMatchingRule(Dlp.java:72)
at org.apache.james.transport.matchers.dlp.Dlp.match(Dlp.java:55)
at 
org.apache.james.mailetcontainer.impl.camel.MatcherSplitter.split(MatcherSplitter.java:109)
at sun.reflect.GeneratedMethodAccessor70.invoke(Unknown Source)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at 
org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481)
at 
org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300)
at 
org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273)
at 
org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:187)
at 
org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109)
at 
org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:70)
at 
org.apache.camel.language.bean.BeanExpression.invokeBean(BeanExpression.java:200)
at 
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:124)
at 
org.apache.camel.language.bean.BeanExpression.evaluate(BeanExpression.java:135)
at 
org.apache.camel.processor.Splitter.createProcessorExchangePairs(Splitter.java:127)
at 
org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:241)
at org.apache.camel.processor.Splitter.process(Splitter.java:122)
at 
org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548)
at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:138)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:101)
at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201)
at 
org.apache.camel.component.direct.DirectBlockingProducer.process(DirectBlockingProducer.java:53)
at 
org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:186)
at 
org.apache.camel.processor.SharedCamelInternalProcessor.process(SharedCamelInternalProcessor.java:86)
at 
org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:541)
at 
org.apache.camel.impl.ProducerCache$1.doInProducer(ProducerCache.java:506)
at 
org.apache.camel.impl.ProducerCache.doInProducer(ProducerCache.java:369)
at 
org.apache.camel.impl.ProducerCache.sendExchange(ProducerCache.java:506)
at org.apache.camel.impl.ProducerCache.send(ProducerCache.java:229)
at 
org.apache.camel.impl.DefaultProducerTemplate.send(DefaultProducerTemplate.java:144)
at 
org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:161)
at 
org.apache.camel.impl.DefaultProducerTemplate.sendBody(DefaultProducerTemplate.java:168)
at 
org.apache.james.mailetcontainer.impl.camel.CamelMailetProcessor.service(CamelMailetProcessor.java:68)
at 
org.apache.james.mailetcontainer.lib.AbstractStateCompositeProcessor.service(AbstractStateCompositeProcessor.java:84)
at 
org.apache.james.mailetcontainer.impl.JamesMailSpooler.lambda$run$0(JamesMailSpooler.java:163)
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}

It cames from the Dlp part (Dlp.java):


{code:java}
private Optional findFirstMatchingRule(Mail mail) {
return Optional
.ofNullable(mail.getSender())
.flatMap(sender -> matchingRule(sender, mail));
}

private Optional matchingRule(MailAddress address, 
Mail mail) 

[jira] [Created] (JAMES-2556) Impossible to reprocess a mailqueue when a key is not found

2018-10-08 Thread Tellier Benoit (JIRA)
Tellier Benoit created JAMES-2556:
-

 Summary: Impossible to reprocess a mailqueue when a key is not 
found
 Key: JAMES-2556
 URL: https://issues.apache.org/jira/browse/JAMES-2556
 Project: James Server
  Issue Type: Bug
  Components: MailStore & MailRepository, webadmin
Affects Versions: master, 3.1.0
Reporter: Tellier Benoit
 Fix For: 3.2.0


We miss a null check on mailRepository.retrieve(key)

This can happen for instance in the face of concurrent deletes

{code:java}
11:56:43.579 [ERROR] o.a.j.t.MemoryTaskManager - Error while running task
java.lang.NullPointerException: null
at 
org.apache.james.webadmin.service.ReprocessingService.reprocess(ReprocessingService.java:72)
at 
org.apache.james.webadmin.service.ReprocessingService.lambda$null$0(ReprocessingService.java:59)
at 
com.github.fge.lambdas.consumers.ConsumerChainer.doAccept(ConsumerChainer.java:20)
at 
com.github.fge.lambdas.consumers.ThrowingConsumer.accept(ThrowingConsumer.java:22)
at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
at 
java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:373)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at 
java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at 
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
at 
java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at 
java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
at 
org.apache.james.webadmin.service.ReprocessingService.lambda$reprocessAll$1(ReprocessingService.java:59)
at 
com.github.fge.lambdas.consumers.ConsumerChainer.lambda$sneakyThrow$9(ConsumerChainer.java:73)
at 
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at 
java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at 
org.apache.james.webadmin.service.ReprocessingService.reprocessAll(ReprocessingService.java:56)
at 
org.apache.james.webadmin.service.ReprocessingAllMailsTask.run(ReprocessingAllMailsTask.java:99)
at 
org.apache.james.task.MemoryTaskManager.run(MemoryTaskManager.java:84)
at 
org.apache.james.task.MemoryTaskManager.lambda$runWithMdc$2(MemoryTaskManager.java:77)
at org.apache.james.util.MDCBuilder.lambda$withMdc$0(MDCBuilder.java:60)
at org.apache.james.util.MDCBuilder.withMdc(MDCBuilder.java:48)
at org.apache.james.util.MDCBuilder.withMdc(MDCBuilder.java:59)
at 
org.apache.james.task.MemoryTaskManager.runWithMdc(MemoryTaskManager.java:72)
at 
org.apache.james.task.MemoryTaskManager.lambda$submit$1(MemoryTaskManager.java:67)
at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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
(v7.6.3#76005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Created] (JAMES-2555) Re-inding big mailboxes fails

2018-10-08 Thread Tellier Benoit (JIRA)
Tellier Benoit created JAMES-2555:
-

 Summary: Re-inding big mailboxes fails
 Key: JAMES-2555
 URL: https://issues.apache.org/jira/browse/JAMES-2555
 Project: James Server
  Issue Type: Bug
  Components: CLI, mailbox
Affects Versions: 3.0.0, master, 3.0.1, 3.1.0
Reporter: Tellier Benoit
 Fix For: 3.2.0


Reported internally:

{code:java}
Doing a reindex via the CLI on a mailbox which contains ~24000 mails does not 
work.

 -  heap out of memory issue

Heap increased, then:

 -  cassandra timeout when increasing heap

Timeout increased, then:

 -  heap out of memory issue

Heap increased, then:

 -  GC overhead limit exceeded
{code}

In ReIndexerImpl instead of doing a FULL read to reindex the all mailbox (AND 
all of the related data) we should rather do a first metadata query to load 
uids then perform subsequent single reads.

That is the root issue: trying to load 11 Go of mails in memory.

Furthermore, a simple error should not trigger the end of a ReIndexing.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org



[jira] [Created] (JAMES-2554) Coherence issues between mail repository list and mails

2018-10-08 Thread Antoine Duprat (JIRA)
Antoine Duprat created JAMES-2554:
-

 Summary: Coherence issues between mail repository list and mails
 Key: JAMES-2554
 URL: https://issues.apache.org/jira/browse/JAMES-2554
 Project: James Server
  Issue Type: New Feature
  Components: cassandra, MailStore & MailRepository
Reporter: Antoine Duprat


When getting the list of mails from a repository, some of them does not exist.

I don't know what happened with them, but GETting them fails with not found.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

-
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org