Wojtek created JAMES-3915:
-----------------------------

             Summary: NPE in LuceneMessageSearchIndex for MailboxEvents.Added 
while running imapsync
                 Key: JAMES-3915
                 URL: https://issues.apache.org/jira/browse/JAMES-3915
             Project: James Server
          Issue Type: Bug
    Affects Versions: 3.9.0
         Environment: Ran in docker container
            Reporter: Wojtek


While running imapsync, we encountered error 
{{o.a.j.e.d.EventDelivery$Retryer$BackoffRetryer - listener 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex exceeded 
maximum retry(8) to handle event org.apache.james.mailbox.even
ts.MailboxEvents.Added}}

There doesn't seem to be more information (i.e. which email triggered the 
issue). From the cursory check it seems that the message that would be added to 
the index is probably "faulty" so the header can't be properly parsed (?!) 
resulting in null.

There is another tiny nuisance - before this finall exception/stacktrace, there 
are repeated "plain" stacktrace (I would guess the retries yielding the failure 
at retry) - is there a way to avoid the retry NPEs being logged and only 
leaving the final one (with retry failure)?

Stacktrace (final entry):

{{21:45:28.406 [ERROR] o.a.j.e.d.EventDelivery$Retryer$BackoffRetryer - 
listener org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex 
exceeded maximum retry(8) to handle event org.apache.james.mailbox.even
ts.MailboxEvents.Added
java.lang.NullPointerException: null
        at java.base/java.io.ByteArrayInputStream.<init>(Unknown Source)
        at 
org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage.getHeaderContent(JPAMailboxMessage.java:116)
        at 
org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage.getFullContent(AbstractJPAMailboxMessage.java:492)
        at 
org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage.getAttachments(AbstractJPAMailboxMessage.java:533)
        at 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex.hasAttachment(LuceneMessageSearchIndex.java:784)
        at 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex.createMessageDocument(LuceneMessageSearchIndex.java:576)
        at 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex.lambda$add$3(LuceneMessageSearchIndex.java:1261)
        at 
com.github.fge.lambdas.runnable.RunnableChainer.doRun(RunnableChainer.java:18)
        at 
com.github.fge.lambdas.runnable.ThrowingRunnable.run(ThrowingRunnable.java:16)
        at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:73)
        at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:32)
        at 
reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:190)
        ... 9 common frames omitted
Wrapped by: reactor.core.Exceptions$RetryExhaustedException: Retries exhausted: 
8/8
        at reactor.core.Exceptions.retryExhausted(Exceptions.java:306)
        at 
reactor.util.retry.RetryBackoffSpec.lambda$static$0(RetryBackoffSpec.java:68)
        at 
reactor.util.retry.RetryBackoffSpec.lambda$null$4(RetryBackoffSpec.java:560)
        at 
reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:183)
        at 
reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107)
        at 
reactor.core.publisher.SinkManyEmitterProcessor.drain(SinkManyEmitterProcessor.java:471)
        at 
reactor.core.publisher.SinkManyEmitterProcessor.tryEmitNext(SinkManyEmitterProcessor.java:269)
        at 
reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
        at 
reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
        at 
reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onError(FluxRetryWhen.java:190)
        at 
reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84)
        at 
reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:258)
        at 
reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onError(FluxContextWrite.java:121)
        at 
reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onError(MonoUsing.java:260)
        at 
reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onError(MonoIgnoreThen.java:278)
        at 
reactor.core.publisher.MonoFlatMap$FlatMapMain.secondError(MonoFlatMap.java:241)
        at 
reactor.core.publisher.MonoFlatMap$FlatMapInner.onError(MonoFlatMap.java:315)
        at 
reactor.core.publisher.MonoIgnoreElements$IgnoreElementsSubscriber.onError(MonoIgnoreElements.java:84)
        at 
reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.maybeOnError(FluxConcatMapNoPrefetch.java:326)
        at 
reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:211)
        at 
reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:440)
        at 
reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:527)
        at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
        at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
 Source)
        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)}}

Stacktrace (repeating NPEs):
{{21:42:47.908 [ERROR] o.a.j.e.d.InVmEventDelivery - Error while processing 
listener
java.lang.NullPointerException: null
        at java.base/java.io.ByteArrayInputStream.<init>(Unknown Source)
        at 
org.apache.james.mailbox.jpa.mail.model.openjpa.JPAMailboxMessage.getHeaderContent(JPAMailboxMessage.java:116)
        at 
org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage.getFullContent(AbstractJPAMailboxMessage.java:492)
        at 
org.apache.james.mailbox.jpa.mail.model.openjpa.AbstractJPAMailboxMessage.getAttachments(AbstractJPAMailboxMessage.java:533)
        at 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex.hasAttachment(LuceneMessageSearchIndex.java:784)
        at 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex.createMessageDocument(LuceneMessageSearchIndex.java:576)
        at 
org.apache.james.mailbox.lucene.search.LuceneMessageSearchIndex.lambda$add$3(LuceneMessageSearchIndex.java:1261)
        at 
com.github.fge.lambdas.runnable.RunnableChainer.doRun(RunnableChainer.java:18)
        at 
com.github.fge.lambdas.runnable.ThrowingRunnable.run(ThrowingRunnable.java:16)
        at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:73)
        at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:32)
        at 
reactor.core.publisher.FluxConcatMapNoPrefetch$FluxConcatMapNoPrefetchSubscriber.onNext(FluxConcatMapNoPrefetch.java:190)
        at 
reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:440)
        at 
reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:527)
        at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)
        at reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)
        at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
 Source)
        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)}}



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

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

Reply via email to