-
Bug
-
Resolution: Fixed
-
Low
-
None
-
None
-
2
-
Severity 1 - Critical
-
40
Issue Summary
When installing or enabling Jira Cloud Migration Assistant (JCMA) at a Jira instance with a large set of user accounts, it can fail to start due to timeout.
Steps to Reproduce
- Install Jira at any version compatible with JCMA 1.5.7
- Populate it with a large number of accounts (e.g 100k+ users)
- Install JCMA 1.5.7
Expected Results
JCMA 1.5.7 will be enabled successfully before the default plugin timeout (300 seconds).
Actual Results
JCMA fails to be enabled due to timeout.
When generating thread dumps while JCMA is being enabled, a long running thread with the following pattern can be identified:
"ThreadPoolAsyncTaskExecutor::Thread 7" #393 prio=5 os_prio=0 tid=0x00007f6b2ebd6000 nid=0xdd197 runnable [0x00007f665d837000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) ... at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:114) ... at com.atlassian.jira.migration.serverdataextractors.usergroup.JiraDirectoryService.fetchUsersWithAttributes(JiraDirectoryService.kt:69) ... at com.atlassian.jira.migration.email.NewEmailSuggestingService.buildDomainNameMap(NewEmailSuggestingService.kt:72)
Workaround
- Reduce the number of user accounts on Jira. As a recommended approach, this KB article can be used to identify accounts that are not needed anymore, so they can be deleted if possible.
- Try increasing the plugin timeout on Jira. The default timeout value is 300 seconds, so users can modify atlassian.plugins.enable.wait to a larger value (e.g. 600 seconds) to enable JCMA in this situation.
We have included the the fix in JCMA release 1.5.8 on 17 Aug 2021.