Synchrony Fails To Start Due To Missing Permissions In The Java Directory
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Summary
Problem
Confluence startup does not not start synchrony process correctly. The synchrony JVM is not running on the system.
In addition to the above, the Atlassian synchrony logs are empty.
Diagnosis
To diagnose this issue, we must enable some debug logging in Confluence to confirm that the application is attempting to start synchrony:
Enable DEBUG for the following class in the Logging and profiling UI:
com.atlassian.confluence.plugins.synchrony
Go to the Plugins UI and check if the system plugins related to Synchrony are enabled.
Confluence Collaborative Editor Plugin
Synchrony Interop Bootstrap Plugin
Attempting to restart Synchrony again will trigger the Synchrony startup. We will see the following messages in Confluence logs:
1
2
3
DEBUG [synchrony-interop-executor:thread-2] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] lambda$startProcess$1 starting up Synchrony with command [/opt/oracle-jdk-8u202/jre/bin/java, -classpath, /opt/atlassian/confluence/temp/2.1.0-master-9d112c9d.jar:/opt/atlassian/confluence-6.15.4/confluence/WEB-INF/lib/postgresql-42.1.1.jar, -Xss2048k, -Xmx1g, synchrony.core, sql]
DEBUG [synchrony-interop-executor:thread-2] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] onBeforeStart Added shutdown hook for Synchrony
DEBUG [ListenableFutureAdapter-thread-8] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] lambda$startup$4 Synchrony process started, updating configuration.
1
2
3
4
5
6
WARN [ListenableFutureAdapter-thread-3] [plugins.synchrony.bootstrap.DefaultSynchronyMonitor] lambda$null$3 Rescheduled heartbeat check failed.
-- url: /rest/synchrony-interop/restart | referer: https://[Confluence_base_URL]/admin/confluence-collaborative-editor-plugin/configure.action | traceId: 67b463998b20e12d | userName: USER_NAME
com.atlassian.util.concurrent.TimedOutException: Timed out after: 33 SECONDS
at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.lambda$pollHeartbeat$4(DefaultSynchronyMonitor.java:91)
at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.pollHeartbeat(DefaultSynchronyMonitor.java:114)
at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.lambda$null$1(DefaultSynchronyMonitor.java:97)
Nothing is written into the Atlassian Synchrony logs after that however, if we grab the startup command and run manually in the server command line we will get the following:
1
2
3
4
/opt/oracle-jdk-8u202/jre/bin/java -classpath /opt/atlassian/confluence/temp/2.1.0-master-9d112c9d.jar:/opt/atlassian/confluence-6.15.4/confluence/WEB-INF/lib/postgresql-42.1.1.jar -Xss2048k -Xmx1g synchrony.core sql
bash: /opt/oracle-jdk-8u202/jre/bin/java: Permission denied
Cause
There are missing permissions for JAVA to execute the Synchrony startup command.
Solution
Resolution
Ensure the permissions for the JAVA folder, Confluence install directory and Confluence Data directory are set correctly. The Confluence user on Linux must have permissions to execute the synchrony startup command.
1
2
3
$ chmod -R 755 <Install-directory>
$ chmod -R 755 <Home-directory>
$ chmod -R 755 <Java-directory>
Was this helpful?