[ 
https://issues.apache.org/jira/browse/CAMEL-18270?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17568833#comment-17568833
 ] 

Florian Fiby commented on CAMEL-18270:
--------------------------------------

There was an other incident with same blocking outcome, the route was blocked 
and no new mails were processed . Camel 3.4 is also affected:

{{2022-07-18 16:21:24.762  WARN 1 --- [Camel (PROD) thread #1 - 
imaps://outlook.office365.com:993] o.a.c.i.engine.DefaultReactiveExecutor   : 
Error executing reactive work due to Error accessing headers due to: * BYE 
Jakarta Mail Exception: java.net.SocketTimeoutE}}
{{{}xception: Read timed out. This exception is 
ignored.{}}}{{{}org.apache.camel.RuntimeCamelException: Error accessing headers 
due to: * BYE Jakarta Mail Exception: java.net.SocketTimeoutException: Read 
timed out{}}}
{{        at 
org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:107)
 ~[camel-mail-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.DefaultMessage.createHeaders(DefaultMessage.java:310) 
~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.DefaultMessage.hasHeaders(DefaultMessage.java:282) 
~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.DefaultExchange.copy(DefaultExchange.java:129) 
~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.ExchangeHelper.createCopy(ExchangeHelper.java:330) 
~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.defensiveCopyExchangeIfNeeded(RedeliveryErrorHandler.java:266)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.<init>(RedeliveryErrorHandler.java:590)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:171)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:90) 
~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at org.apache.camel.processor.Pipeline.process(Pipeline.java:147) 
~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
 ~[camel-base-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40)
 ~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:431)
 ~[camel-mail-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:248)
 ~[camel-mail-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:161) 
~[camel-mail-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187)
 ~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:106)
 ~[camel-support-3.4.6.jar!/:3.4.6]}}
{{        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
 ~[na:na]}}
{{        at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305) 
~[na:na]}}
{{        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
 ~[na:na]}}
{{        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 ~[na:na]}}
{{        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 ~[na:na]}}
{{        at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]}}
{{Caused by: javax.mail.FolderClosedException: * BYE Jakarta Mail Exception: 
java.net.SocketTimeoutException: Read timed out}}
{{        at com.sun.mail.imap.IMAPMessage.loadHeaders(IMAPMessage.java:1575) 
~[jakarta.mail-1.6.5.jar!/:1.6.5]}}
{{        at com.sun.mail.imap.IMAPMessage.getAllHeaders(IMAPMessage.java:992) 
~[jakarta.mail-1.6.5.jar!/:1.6.5]}}
{{        at 
org.apache.camel.component.mail.MailBinding.extractHeadersFromMail(MailBinding.java:610)
 ~[camel-mail-3.4.6.jar!/:3.4.6]}}
{{        at 
org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:104)
 ~[camel-mail-3.4.6.jar!/:3.4.6]}}
{{        ... 26 common frames omitted}}

> IMAP skipFailedMessage=true, but route blocked if mail is moved while download
> ------------------------------------------------------------------------------
>
>                 Key: CAMEL-18270
>                 URL: https://issues.apache.org/jira/browse/CAMEL-18270
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-mail
>    Affects Versions: 3.18.0
>            Reporter: Florian Fiby
>            Priority: Major
>
>  
> Our imap mail route on the production system gets blocked when someone or an 
> other systems moves / deletes an email from the inbox, while the camel mail 
> route is loading the mail. As we do not have full control on the mailboxes we 
> enabled skipFailedMessage but the issue remains.
> The following exception is written is the log, but the mail consumer is 
> blocked. The issue can only be resolved by a restart of the service.
> {code:java}
> 2022-07-14 09:17:28.714  WARN 5465 --- [fice365.com:993] 
> o.a.c.i.engine.DefaultReactiveExecutor   : Error executing reactive work due 
> to Error accessing headers due to: Cannot load header. This exception is 
> ignored.
> org.apache.camel.RuntimeCamelException: Error accessing headers due to: 
> Cannot load header
>     at 
> org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:107)
>  ~[camel-mail-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.DefaultMessage.createHeaders(DefaultMessage.java:331)
>  ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.DefaultMessage.hasHeaders(DefaultMessage.java:305) 
> ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.AbstractExchange.copy(AbstractExchange.java:140) 
> ~[camel-support-3.18.0.jar:3.18.0]
>     at org.apache.camel.support.DefaultExchange.copy(DefaultExchange.java:27) 
> ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.ExchangeHelper.createCopy(ExchangeHelper.java:322) 
> ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.defensiveCopyExchangeIfNeeded(RedeliveryErrorHandler.java:304)
>  ~[camel-core-processor-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.prepare(RedeliveryErrorHandler.java:680)
>  ~[camel-core-processor-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.processor.PrototypeTaskFactory.acquire(PrototypeTaskFactory.java:29)
>  ~[camel-core-processor-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:210)
>  ~[camel-core-processor-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399)
>  ~[camel-base-engine-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.processor.Pipeline$PipelineTask.run(Pipeline.java:109) 
> ~[camel-core-processor-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:189)
>  ~[camel-base-engine-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:61)
>  ~[camel-base-engine-3.18.0.jar:3.18.0]
>     at org.apache.camel.processor.Pipeline.process(Pipeline.java:184) 
> ~[camel-core-processor-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:399)
>  ~[camel-base-engine-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
>  ~[camel-base-engine-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41)
>  ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.component.mail.MailConsumer.processExchange(MailConsumer.java:451)
>  ~[camel-mail-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.component.mail.MailConsumer.processBatch(MailConsumer.java:260)
>  ~[camel-mail-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.component.mail.MailConsumer.poll(MailConsumer.java:165) 
> ~[camel-mail-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:202)
>  ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.support.ScheduledPollConsumer.run(ScheduledPollConsumer.java:116)
>  ~[camel-support-3.18.0.jar:3.18.0]
>     at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>  ~[na:na]
>     at 
> java.base/java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:305)
>  ~[na:na]
>     at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java) 
> ~[na:na]
>     at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
>  ~[na:na]
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>  ~[na:na]
>     at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>  ~[na:na]
>     at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
> Caused by: javax.mail.MessagingException: Cannot load header
>     at com.sun.mail.imap.IMAPMessage.loadHeaders(IMAPMessage.java:1583) 
> ~[jakarta.mail-1.6.5.jar:1.6.5]
>     at com.sun.mail.imap.IMAPMessage.getAllHeaders(IMAPMessage.java:992) 
> ~[jakarta.mail-1.6.5.jar:1.6.5]
>     at 
> org.apache.camel.component.mail.MailBinding.extractHeadersFromMail(MailBinding.java:649)
>  ~[camel-mail-3.18.0.jar:3.18.0]
>     at 
> org.apache.camel.component.mail.MailMessage.populateInitialHeaders(MailMessage.java:104)
>  ~[camel-mail-3.18.0.jar:3.18.0]
>     ... 29 common frames omitted
> {code}
>  
> I've reproduced the issue with a break point on MailConsumer.processExchange. 
> When the process hits this break point, I've move the mail and the route was 
> blocked.
> I think the route blocks on DefaultAsyncProcessorAwaitManager.await Line 107, 
> but I'm not sure about it.
> The expected behavior for me with skipFailedMessage=true, would be an ERROR 
> in the log and processing of the next mail.
> Is this a bug or is there a workaround for this issue?
> Maybe this is related with CAMEL-16829
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to