Sending an invite type of email to a Jira's mail handler can result in an loop

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Low
    • None
    • Affects Version/s: 8.10.0
    • Component/s: Mail Server
    • None
    • 8.1
    • 3
    • Severity 3 - Minor

      Issue Summary

      Sending an invite type of email to a Jira's mail handler configured with, for example, O365 mailbox shared via Secure POP, can make the Mail Processor go over all the messages received after the invite as they queue in the inbox every single minute, but then not being able to process them and delete them from the inbox.

      As a result, once the invite messages are removed, the inbox is cleaned up but the Mail Processor starts to process a new ticket that is a repetition of previously opened tickets as many times as minutes passed from the moment the invite arrived, which can cause several issues.

      Steps to Reproduce

      1. Configure a O365 mail handler in Jira with POP
      2. Send an invite to this email in between normal emails that will generate tickets

      Expected Results

      1. Jira process the email or filter it out

      Actual Results

      1. Jira can't process the email and get's stuck in a loop

      The below exception is thrown in the xxxxxxx.log file:

      2020-07-09 13:03:30,030+0000 ERROR [] Caesium-1-2 anonymous     Messaging Error when MailPullerWorker pulls emails from servicedesk@auxcloud.nl: Couldn't connect to host, port: mail.auxcloud.nl, 143; timeout 60000
      2020-07-09 13:10:16,146+0000 ERROR [] Caesium-1-4 anonymous     Error while serializing message
      javax.mail.MessageRemovedException: can't retrieve message #12 in POP3Message.writeTo
      	at com.sun.mail.pop3.POP3Message.writeTo(POP3Message.java:593) [javax.mail-1.6.0.jar:1.6.0]
      	at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1880) [javax.mail-api-1.6.0.jar:1.6.0]
      	at com.atlassian.jira.internal.mail.processor.util.MimeMessageBase64ChunkStream.fullyLoadMessageToMemory(MimeMessageBase64ChunkStream.java:32) [?:?]
      	at com.atlassian.jira.internal.mail.processor.util.MimeMessageBase64ChunkStream.<init>(MimeMessageBase64ChunkStream.java:22) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.mailitem.MailItemStore.createMailItemChunks(MailItemStore.java:254) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.mailitem.MailItemStore.lambda$null$4(MailItemStore.java:227) [?:?]
      	at io.atlassian.fugue.Option.map(Option.java:259) [fugue-4.7.2.jar:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.mailitem.MailItemStore.lambda$createMailItem$5(MailItemStore.java:225) [?:?]
      	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.lambda$execute$0(DatabaseAccessorImpl.java:69) [?:?]
      	at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.executeInternal(DefaultTransactionalExecutor.java:87) [?:?]
      	at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.lambda$execute$0(DefaultTransactionalExecutor.java:43) [?:?]
      	at com.atlassian.jira.database.DatabaseAccessorImpl.runInManagedTransaction(DatabaseAccessorImpl.java:131) [classes/:?]
      	at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source) [?:?]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_202]
      	at java.lang.reflect.Method.invoke(Method.java:498) [?:1.8.0_202]
      	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) [atlassian-plugins-core-5.2.3-96cf760eb.jar:?]
      	at com.sun.proxy.$Proxy634.runInManagedTransaction(Unknown Source) [?:?]
      	at sun.reflect.GeneratedMethodAccessor275.invoke(Unknown Source) [?:?]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_202]
      	at java.lang.reflect.Method.invoke(Method.java:498) [?:1.8.0_202]
      	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:131) [?:?]
      	at com.sun.proxy.$Proxy634.runInManagedTransaction(Unknown Source) [?:?]
      	at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.runInStartedOrExistingTransaction(JiraHostConnectionAccessor.java:130) [?:?]
      	at com.atlassian.sal.jira.rdbms.JiraHostConnectionAccessor.execute(JiraHostConnectionAccessor.java:60) [?:?]
      	at com.atlassian.sal.core.rdbms.DefaultTransactionalExecutor.execute(DefaultTransactionalExecutor.java:40) [?:?]
      	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.execute(DatabaseAccessorImpl.java:67) [?:?]
      	at com.atlassian.pocketknife.internal.querydsl.DatabaseAccessorImpl.runInTransaction(DatabaseAccessorImpl.java:43) [?:?]
      	at com.atlassian.pocketknife.api.querydsl.DatabaseAccessor.runInTransaction(DatabaseAccessor.java:134) [?:?]
      	at com.atlassian.jira.internal.mail.processor.querydsl.QueryDslHelper.runInTransaction(QueryDslHelper.java:53) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.mailitem.MailItemStore.createMailItem(MailItemStore.java:221) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.mailitem.MailItemManager.createMailItemFromMessage(MailItemManager.java:36) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.MailPullerWorker.persistMailMessage(MailPullerWorker.java:208) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.MailPullerWorker.pullEmailForConnection(MailPullerWorker.java:112) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.MailPullerWorker.pullMailFromAllValidChannels(MailPullerWorker.java:75) [?:?]
      	at com.atlassian.jira.internal.mail.processor.feature.puller.MailPullerService.run(MailPullerService.java:33) [?:?]
      	at com.atlassian.jira.internal.mail.processor.services.MailPullerExecutor.run(MailPullerExecutor.java:29) [?:?]
      	at com.atlassian.jira.internal.mail.processor.services.AbstractMailExecutor.execute(AbstractMailExecutor.java:45) [?:?]
      	at com.atlassian.jira.internal.mail.processor.services.MailJobRunner.runJob(MailJobRunner.java:35) [?:?]
      	at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:134) [atlassian-scheduler-core-3.0.0.jar:?]
      	at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:106) [atlassian-scheduler-core-3.0.0.jar:?]
      	at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:90) [atlassian-scheduler-core-3.0.0.jar:?]
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:435) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJob(CaesiumSchedulerService.java:430) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeClusteredJobWithRecoveryGuard(CaesiumSchedulerService.java:454) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:382) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35) [atlassian-scheduler-caesium-3.0.2.jar:?]
      	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
      

      Workaround

      Remove the invite mail from the inbox.

            Assignee:
            Unassigned
            Reporter:
            Felipe Prusch (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: