JIRA mail queue is invalidating avatars cache

XMLWordPrintable

    • Type: Bug
    • Resolution: Duplicate
    • Priority: Low
    • None
    • Affects Version/s: 7.1.10, 7.2.11, 7.4.4, 7.5.0
    • Component/s: Data Center - Other
    • 7.01
    • Severity 2 - Major

      When emails are send in JIRA Data Center performance will be impacted.

      In logs one can observe:

      "Sending mailitem com.atlassian.jira.mail.IssueMailQueueItem@781a566e[issue=com.atlassian.jira.issue.IssueImpl@595ae38b[id=2717781,summary=******* ,key=*****,created=2017-10-09 21:25:30.327,updated=2017-10-10 18:35:18.957,assignee=******,reporter=******],remoteUser=******,notificationType=Current_Reporter,eventTypeId=3,templateId=3]" #287 daemon prio=5 tid=0x00007f4f48b4b000 nid=0x7d26 waiting on condition [0x00007f45413da000]
      java.lang.Thread.State: WAITING (parking)
      at sun.misc.Unsafe.park(Native Method)
      - parking to wait for <0x00007f54012c8cc0> (a java.util.concurrent.CompletableFuture$Signaller)
      at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
      at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1693)
      at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323)
      at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1729)
      at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
      at com.atlassian.jira.cluster.distribution.JiraCacheManagerPeerProvider$$Lambda$46/674993742.apply(Unknown Source)
      at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
      at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
      at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
      at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
      at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
      at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
      at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
      at com.atlassian.jira.cluster.distribution.JiraCacheManagerPeerProvider.waitForAll(JiraCacheManagerPeerProvider.java:95)
      at com.atlassian.jira.cluster.distribution.JiraCacheManagerPeerProvider.listRemoteCachePeers(JiraCacheManagerPeerProvider.java:63)
      at com.atlassian.jira.cluster.cache.ehcache.BlockingParallelCacheReplicator.forEachCachePeer(BlockingParallelCacheReplicator.java:198)
      at com.atlassian.jira.cluster.cache.ehcache.BlockingParallelCacheReplicator.replicateRemovalNotification(BlockingParallelCacheReplicator.java:161)
      at com.atlassian.jira.cluster.cache.ehcache.BlockingParallelCacheReplicator.notifyElementRemoved(BlockingParallelCacheReplicator.java:74)
      at net.sf.ehcache.event.RegisteredEventListeners.internalNotifyElementRemoved(RegisteredEventListeners.java:156)
      at net.sf.ehcache.event.RegisteredEventListeners.notifyElementRemoved(RegisteredEventListeners.java:136)
      at net.sf.ehcache.Cache.notifyRemoveInternalListeners(Cache.java:2440)
      at net.sf.ehcache.Cache.removeInternal(Cache.java:2423)
      at net.sf.ehcache.Cache.remove(Cache.java:2325)
      at net.sf.ehcache.Cache.remove(Cache.java:2243)
      at net.sf.ehcache.constructs.EhcacheDecoratorAdapter.remove(EhcacheDecoratorAdapter.java:155)
      at com.atlassian.cache.ehcache.LoadingCache.remove(LoadingCache.java:208)
      at com.atlassian.cache.ehcache.DelegatingCache.remove(DelegatingCache.java:137)
      at com.atlassian.jira.avatar.CachingTaggingAvatarStore.getByIdTagged(CachingTaggingAvatarStore.java:107)
      at com.atlassian.jira.avatar.AvatarManagerImpl.getByIdTagged(AvatarManagerImpl.java:104)
      at com.atlassian.jira.avatar.AvatarManagerImpl.lambda$transformToJIRAAvatar$2(AvatarManagerImpl.java:410)
      at com.atlassian.jira.avatar.AvatarManagerImpl$$Lambda$1316/280926951.apply(Unknown Source)
      at com.atlassian.fugue.Option$Some.fold(Option.java:421)
      at com.atlassian.fugue.Option.flatMap(Option.java:287)
      at com.atlassian.jira.avatar.AvatarManagerImpl.transformToJIRAAvatar(AvatarManagerImpl.java:410)
      at com.atlassian.jira.avatar.AvatarManagerImpl.processAvatarData(AvatarManagerImpl.java:363)
      at com.atlassian.jira.avatar.AvatarManagerImpl.readAvatarData(AvatarManagerImpl.java:477)
      at com.atlassian.jira.mail.util.MailAttachments$DefaultAvatarAttachment.prepareBodyPart(MailAttachments.java:380)
      at com.atlassian.jira.mail.util.MailAttachments$AbstractAvatarAttachment.buildBodyPart(MailAttachments.java:314)
      at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl.lambda$buildAttachmentsBodyParts$0(MailAttachmentsManagerImpl.java:225)
      at com.atlassian.jira.mail.util.MailAttachmentsManagerImpl$$Lambda$2455/362286509.apply(Unknow

      This is invalidating avatars cache and causes all other threads to wait for this invalidation to complete. 

              Assignee:
              Unassigned
              Reporter:
              Adam Jakubowski (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: