-
Bug
-
Resolution: Fixed
-
High
-
CCMA - 3.9.8, CCMA - 3.10.4, CCMA - 3.10.10, CCMA - 3.11.4, CCMA - 3.11.9
-
None
-
15
-
Severity 3 - Minor
-
53
Issue Summary
This is reproducible on Data Center: yes
Steps to Reproduce
- Install Confluence 8.5.16 + CCMA 3.10.10
- Install several 3rd party plugins, for example, the ones listed below:
Adaptavist ScriptRunner for Confluence Advanced Tables for Confluence Better Content Archiving for Confluence Comala Document Management Composition Content Formatting for Confluence glean_search Gliffy Diagrams for Confluence Lucidchart Plugin Multiexcerpt Plugin Numbered Headings Scaffolding
- Restrict internet access in your Confluence instance. (If testing in your laptop, just disconnect your WiFi)
- Browse to General Configuration > Migration Assistant, the see if the Apps count spins endlessly
- Open a new incognito tab, log into Confluence, and browse through different pages and admin pages. There will be substantial delays while those pages load.
Expected Results
Accessing "Migration Assistant" home page causes no impact in Confluence
Actual Results
On the "Migration Assistant" home page, an error message states, "We can't communicate with your server", and the Apps counter spins endlessly.
Besides this, there are noticeable delays in Confluence, ranging from 10 seconds to 45 seconds or higher, depending on the action executed or page accessed.
Collecting ThreadDumps, it can be noticed that CCMA "hangs" in the ForkJoin Pool stack trace. Core Confluence View Page threads then appear to also go through the ForkJoin code path and get blocked
"ForkJoinPool.commonPool-worker-27" #888 daemon prio=5 os_prio=0 cpu=13.75ms elapsed=554.49s tid=0x0000fffdc4f2a3b0 nid=0x1784 waiting on condition [0x0000ffff37a0b000] java.lang.Thread.State: WAITING (parking) at jdk.internal.misc.Unsafe.park(java.base@17.0.12/Native Method) - parking to wait for <0x00000000d556dac8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) at java.util.concurrent.locks.LockSupport.park(java.base@17.0.12/LockSupport.java:211) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.12/AbstractQueuedSynchronizer.java:715) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(java.base@17.0.12/AbstractQueuedSynchronizer.java:1027) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(java.base@17.0.12/ReentrantReadWriteLock.java:738) at net.sf.ehcache.concurrent.ReadWriteLockSync.lock(ReadWriteLockSync.java:50) at net.sf.ehcache.constructs.blocking.BlockingCache.acquiredLockForKey(BlockingCache.java:196) at net.sf.ehcache.constructs.blocking.BlockingCache.get(BlockingCache.java:158) at com.atlassian.cache.ehcache.LoadingCache.get(LoadingCache.java:120) at com.atlassian.cache.ehcache.DelegatingCache.get(DelegatingCache.java:107) at com.atlassian.cache.impl.metrics.InstrumentedCache.get(InstrumentedCache.java:72) at com.atlassian.confluence.cache.ehcache.DefaultConfluenceEhCache.get(DefaultConfluenceEhCache.java:39) at com.atlassian.migration.agent.service.impl.MigrationAppAggregatorService.validateAndReloadApplist(MigrationAppAggregatorService.java:233) at com.atlassian.migration.agent.service.impl.MigrationAppAggregatorService.isBlacklisted(MigrationAppAggregatorService.java:141) at com.atlassian.migration.agent.service.app.PluginManager.lambda$getActualUserInstalledPlugins$0(PluginManager.java:33) at com.atlassian.migration.agent.service.app.PluginManager$$Lambda$5044/0x0000000804619e78.test(Unknown Source) at java.util.stream.ReferencePipeline$2$1.accept(java.base@17.0.12/ReferencePipeline.java:178) at java.util.stream.ReferencePipeline$2$1.accept(java.base@17.0.12/ReferencePipeline.java:179) at java.util.HashMap$ValueSpliterator.forEachRemaining(java.base@17.0.12/HashMap.java:1779) at java.util.stream.AbstractPipeline.copyInto(java.base@17.0.12/AbstractPipeline.java:509) at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@17.0.12/AbstractPipeline.java:499) at java.util.stream.ReduceOps$ReduceTask.doLeaf(java.base@17.0.12/ReduceOps.java:960) at java.util.stream.ReduceOps$ReduceTask.doLeaf(java.base@17.0.12/ReduceOps.java:934) at java.util.stream.AbstractTask.compute(java.base@17.0.12/AbstractTask.java:327) at java.util.concurrent.CountedCompleter.exec(java.base@17.0.12/CountedCompleter.java:754) at java.util.concurrent.ForkJoinTask.doExec(java.base@17.0.12/ForkJoinTask.java:373) at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(java.base@17.0.12/ForkJoinPool.java:1182) at java.util.concurrent.ForkJoinPool.scan(java.base@17.0.12/ForkJoinPool.java:1655) at java.util.concurrent.ForkJoinPool.runWorker(java.base@17.0.12/ForkJoinPool.java:1622) at java.util.concurrent.ForkJoinWorkerThread.run(java.base@17.0.12/ForkJoinWorkerThread.java:165)
The below exception is thrown in the atlassian-confluence-migrations.log file:
2024-10-23 08:40:47,344 INFO [pool-22-thread-1] [agent.service.featureflag.Fx3OkhttpAdapter] post Fx3Client couldn't fetch feature flags from LD. Message : api.atlassian.com: Name or service not known 2024-10-23 08:40:47,346 INFO [pool-22-thread-1] [agent.service.featureflag.Fx3OkhttpAdapter] post Fx3Client couldn't fetch feature flags from LD. Message : api.atlassian.com 2024-10-23 08:40:47,985 INFO [pool-25-thread-1] [agent.service.featureflag.Fx3OkhttpAdapter] post Fx3Client couldn't fetch feature flags from LD. Message : api.atlassian-us-gov-mod.com: Name or service not known 2024-10-23 08:40:47,986 INFO [pool-25-thread-1] [agent.service.featureflag.Fx3OkhttpAdapter] post Fx3Client couldn't fetch feature flags from LD. Message : api.atlassian-us-gov-mod.com
Workaround
The only workaround at this moment is not to restrict Internet access in your Confluence environment and/or disable the "Confluence Cloud Migration Assistant" to avoid any performance impact when accessing "Migration Assistant" home page.
When disabled, the "Migration Assistant" option will not be available in the configurations menu.