How can i avoid a deadlock?

Hi,
I faced with the issue when start Jira after upgrade. Jira wasn’t started and i found in logs that was the deadlock.
After restart all works fine.
I searched for the solution with no luck.
Could someone advise me how to avoid it in the future?
See logs below:

2020-02-06 06:25:39,152 localhost-startStop-1 INFO [c.a.plugin.manager.DefaultPluginManager] Plugin system earlyStartup ended
2020-02-06 06:25:41,679 DeadlockDetection:thread-1 ERROR [c.a.jira.startup.LauncherContextListener] A deadlock has been detected on JIRA startup for the following threads: [“NAFJEventThread” Id=168 BLOCKED on org.picocontainer.DefaultPicoContainer@65965ee5 owned by “localhost-startStop-1” Id=18, “localhost-startStop-1” Id=18 WAITING on java.util.concurren
t.locks.ReentrantLock$NonfairSync@6b51ac27 owned by “NAFJEventThread” Id=168]
2020-02-06 06:25:41,681 DeadlockDetection:thread-1 ERROR [c.a.jira.startup.LauncherContextListener] “NAFJEventThread” Id=168 BLOCKED on org.picocontainer.DefaultPicoContainer@6
5965ee5 owned by “localhost-startStop-1” Id=18
at org.picocontainer.DefaultPicoContainer.getConverters(DefaultPicoContainer.java:1106)
- blocked on org.picocontainer.DefaultPicoContainer@65965ee5
at org.picocontainer.parameters.BasicComponentParameter.getConverters(BasicComponentParameter.java:129)
at org.picocontainer.parameters.BasicComponentParameter.access$000(BasicComponentParameter.java:51)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
…:
org.picocontainer.DefaultPicoContainer.getConverters(DefaultPicoContainer.java:1106)
org.picocontainer.parameters.BasicComponentParameter.getConverters(BasicComponentParameter.java:129)
org.picocontainer.parameters.BasicComponentParameter.access$000(BasicComponentParameter.java:51)
org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:118)
org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136)
org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:78)
org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:309)
org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:335)
org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:270)
org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:364)
org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:40)
org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:698)
org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:646)
org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:677)
com.atlassian.jira.component.pico.CachingMutablePicoContainer.getComponent(CachingMutablePicoContainer.java:139)
com.atlassian.jira.component.pico.ComponentManager.lambda$maybeGetComponent$2(ComponentManager.java:552)
com.atlassian.jira.component.pico.ComponentManager$$Lambda$45/958050947.apply(Unknown Source)
java.util.Optional.map(Optional.java:215)
com.atlassian.jira.component.pico.ComponentManager.maybeGetComponent(ComponentManager.java:552)
com.atlassian.jira.component.pico.ComponentManager.getComponent(ComponentManager.java:541)
com.atlassian.jira.component.ComponentAccessorWorker.getComponent(ComponentAccessorWorker.java:29)
com.atlassian.jira.component.ComponentAccessor.getComponent(ComponentAccessor.java:176)
com.atlassian.jira.component.ComponentReference.get(ComponentReference.java:57)
com.atlassian.jira.issue.index.DefaultIssueDocumentFactory.apply(DefaultIssueDocumentFactory.java:51)
com.atlassian.jira.issue.index.DefaultIssueDocumentFactory.apply(DefaultIssueDocumentFactory.java:31)
com.atlassian.jira.issue.index.DefaultIssueIndexer$DefaultDocumentCreationStrategy.get(DefaultIssueIndexer.java:569)
com.atlassian.jira.issue.index.DefaultIssueIndexer.lambda$reindexIssues$1(DefaultIssueIndexer.java:187)
com.atlassian.jira.issue.index.DefaultIssueIndexer$$Lambda$996/405585808.perform(Unknown Source)
com.atlassian.jira.issue.index.DefaultIssueIndexer.lambda$null$2(DefaultIssueIndexer.java:332)
com.atlassian.jira.issue.index.DefaultIssueIndexer$$Lambda$998/1904921786.get(Unknown Source)
com.atlassian.jira.index.SimpleIndexingStrategy.get(SimpleIndexingStrategy.java:7)
com.atlassian.jira.index.SimpleIndexingStrategy.get(SimpleIndexingStrategy.java:5)
com.atlassian.jira.issue.index.DefaultIssueIndexer.lambda$perform$3(DefaultIssueIndexer.java:330)
com.atlassian.jira.issue.index.DefaultIssueIndexer$$Lambda$997/1846511732.consume(Unknown Source)
com.atlassian.jira.util.collect.CollectionUtil.foreach(CollectionUtil.java:39)
com.atlassian.jira.util.collect.CollectionUtil.foreach(CollectionUtil.java:52)
com.atlassian.jira.issue.util.IssueObjectIssuesIterable.foreach(IssueObjectIssuesIterable.java:24)
com.atlassian.jira.issue.index.DefaultIssueIndexer.perform(DefaultIssueIndexer.java:302)
com.atlassian.jira.issue.index.DefaultIssueIndexer.reindexIssues(DefaultIssueIndexer.java:183)
com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:594)
com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssueObjects(DefaultIndexManager.java:469)
com.atlassian.jira.issue.index.DefaultIndexManager.reIndex(DefaultIndexManager.java:513)
com.atlassian.jira.issue.index.DefaultIndexManager.reIndex(DefaultIndexManager.java:497)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:498)
com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:38)
com.sun.proxy.$Proxy17.reIndex(Unknown Source)
com.riadalabs.jira.plugins.notificationassistant.event.EventManagerImpl.indexIssue(EventManagerImpl.java:188)
com.riadalabs.jira.plugins.notificationassistant.event.EventManagerImpl.startControlEvents(EventManagerImpl.java:149)
com.riadalabs.jira.plugins.notificationassistant.launcher.NAFJLauncher$$Lambda$942/2129207231.run(Unknown Source)
com.atlassian.sal.core.executor.ThreadLocalDelegateRunnable.run(ThreadLocalDelegateRunnable.java:34)
java.lang.Thread.run(Thread.java:748)

Hello,

according to logs you provided, it seems that the issue is not from standard Jira but from a plugin (I assume that by “riadalabs” lines at the bottom). In this case, there is not much to do, you can report it to the vendor, it’s probably a bug.

Kind regards,
Markéta