When Synchrony is restarted it could be that two new instances of Synchrony will be started. First one will be started by the code that performs restart. Second one will be started by code that is triggered when Synchrony process has stopped. This is a raise condition and all depends from timings. We have been able to reproduce this problem on Windows, but it could appear on Linux as well. It became more noticeable after fix for https://jira.atlassian.com/browse/CONFSERVER-60014 was added.
- Get id of running Synchrony process (pid)
- Open Confluence Administration -> General Configuration -> Collaborative editing
- Press "Restart Synchrony" button and press "Restart" in dialog box
- Check atlassian-confluence.log file and find records about starting synchrony from two different threads at almost the same time
- Check that there are more than one synchrony process created by Confluence and their pids are different from those one that we have seen at step 1
One Synchrony instance is started by code which performs restart
Two Synchrony instances started and collaborative editing stops working properly.
atlassian-confluence.log file contains records about starting synchrony from two different threads at almost the same time:
The below exception is thrown in the atlassian-synchrony.log file:
Find process id (pid) of all synchrony processes and kill them. It's a big chance that new instance will start after that and error message will disappear from Collaborative editing page. If error message haven't disappeared, then check that there are no new synchrony processes present (kill them as well if they are present) and then press Restart Synchrony button.
- Execute next command to find Synchrony PID
For e.g in this case Synchrony PID is 79585
- Execute next command to kill synchrony (replace SYNCHRONY_PID with Synchrony PID that you have found on previous step)
- Execute the following command against your command prompt (If your instance is running on a port other than 8090, substitute 8090 for your port number). This command will tell you the PID of your Confluence instance.
For e.g in this case Confluence PID was 1908:
- Use this PID in the command below (replace PID with confluence pid).
- From the result of the last command get PID of processes whose name ends with java.exe and use next command to kill them (replace SYNCHRONY_PID with Synchrony PID):
For e.g. in this case Synchrony PID was 6864