-
Bug
-
Resolution: Fixed
-
High
-
6.13.13, 7.4.3, 7.5.2, 7.6.0, 7.6.1, 7.6.2
-
14
-
Severity 2 - Major
-
18
-
-
Issue Summary
After upgrading the Confluence to version 6.13.13. 7.4.3, 7.5.2, 7.6.0, 7.6.1 or 7.6.2, the Synchrony process doesn't start anymore and it gives below error while starting the Synchrony.
2020-07-27 09:41:01,167 INFO [lifecycle:thread-31] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] startup Starting Synchrony and enabling Collaborative Editing 2020-07-27 09:41:01,824 WARN [synchrony-interop-executor:thread-2] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] lambda$startProcess$1 Failed to setup Synchrony, turn on debug for stack trace: class org.apache.commons.lang3.tuple.ImmutablePair cannot be cast to class org.apache.commons.lang3.tuple.Pair (org.apache.commons.lang3.tuple.ImmutablePair is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @5996a9e9; org.apache.commons.lang3.tuple.Pair is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @1f3a9953)
Also, observed that this issue comes only when Confluence using Datasource for connecting the database, default JDBC connection works properly without any issue.
Steps to Reproduce
- Install Confluence version before 7.5.2 and use Datasource for connecting the Database.
- Check the Confluence and Synchrony both gets start properly and it works.
- Now, upgrade the Confluence to any version after 7.5.2 or 7.5.2.
- Once Confluence upgrade is done, Synchrony doesn't start and gives below error in atlassian-confluence.log and no logs in Synchrony logs.
2020-07-27 09:41:01,167 INFO [lifecycle:thread-31] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] startup Starting Synchrony and enabling Collaborative Editing 2020-07-27 09:41:01,824 WARN [synchrony-interop-executor:thread-2] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] lambda$startProcess$1 Failed to setup Synchrony, turn on debug for stack trace: class org.apache.commons.lang3.tuple.ImmutablePair cannot be cast to class org.apache.commons.lang3.tuple.Pair (org.apache.commons.lang3.tuple.ImmutablePair is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @5996a9e9; org.apache.commons.lang3.tuple.Pair is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @1f3a9953)
Below is the Collaborative editing page screenshot and one banner also visible saying "There's a problem with collaborative editing. People may be unable to save or publish. Troubleshoot this problem."
Expected Results
The synchrony process gets started with the default JDBC connection as well as using Datasource Connection.
Actual Results
Currently, the Synchrony process doesn't start with Datasource connection. It works with the default JDBC connection.
The below exception is thrown in the atlassian-confluence.log file:
2020-07-27 09:41:01,167 INFO [lifecycle:thread-31] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] startup Starting Synchrony and enabling Collaborative Editing 2020-07-27 09:41:01,824 WARN [synchrony-interop-executor:thread-2] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] lambda$startProcess$1 Failed to setup Synchrony, turn on debug for stack trace: class org.apache.commons.lang3.tuple.ImmutablePair cannot be cast to class org.apache.commons.lang3.tuple.Pair (org.apache.commons.lang3.tuple.ImmutablePair is in unnamed module of loader org.apache.catalina.loader.ParallelWebappClassLoader @5996a9e9; org.apache.commons.lang3.tuple.Pair is in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @1f3a9953)
This will also be followed by a message like the following:
... INFO [http-nio-8090-exec-6] [plugins.synchrony.config.DefaultSynchronyConfigurationManager] retrievePublicKey [Collab editing plugin] Could not retrieve public key for real-time collaboration service at http://localhost:8091/synchrony/jwt-key with exception: Connect to localhost:8091 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
Workaround
Connect Confluence to database using a JDBC connection by specifying DB properties in confluence.cfg.xml file
For Confluence Enterprise Release customers as of 31/07/2020, upgrading to a later unaffected version will also fix the issue. This option is currently not available for customers running 7.5.2+