Collaborative editing not working on demo
Asked by Adam:

Hello,

I've just downloaded and installed the latest version of Confluence on an Ubuntu box. This box has no access to the internet because it's on the internal production network where internet connections aren't alowed.

It's running on port 8091 because when I ran the demo installer it said that it was unable to bind to the default port.

When trying to edit a page I get a long pause and then eventually an error message. If I turn off collaborative editing then I can edit pages fine.

If I go to the "Collaborative editing" administration page I see that under "Synchrony Status" there is an error saying "The Synchrony service is stopped or has errors".

If I try and restart it it doesn't fix the problem and I get this in the log file:

```
2017-08-11 12:23:29,039 INFO [synchrony-interop-executor:thread-2] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] lambda$stop$12 Stopping Synchrony...
2017-08-11 12:23:29,253 WARN [83230:StdOutHandler [/local2/atlassian/confluence/jre/bin/java]] [atlassian.utils.process.ExternalProcessImpl] maybeFinish Finishing /local2/atlassian/confluence/jre/bin/java -classpath /local2/atlassian/confluence/temp/1.0.0-release-confluence_6.1-a1ab321e.jar:/local2/atlassian/confluence/confluence/WEB-INF/lib/h2-1.3.176.jar -Xss2048k -Xmx1g synchrony.core sql finished
 -- url: /rest/synchrony-interop/enable | referer: http://kingpin.xxxxx.co.nz:8091/admin/confluence-collaborative-editor-plugin/configure.action | traceId: 59eab70ef4b54d10 | userName: shand
java.lang.IllegalArgumentException: timeout value is negative
 at java.lang.Object.wait(Native Method)
 at java.lang.UNIXProcess.waitFor(UNIXProcess.java:412)
 at com.atlassian.utils.process.ExternalProcessImpl.getExitCodeUnlessTimeout(ExternalProcessImpl.java:676)
 at com.atlassian.utils.process.ExternalProcessImpl.wrapUpProcess(ExternalProcessImpl.java:654)
 at com.atlassian.utils.process.ExternalProcessImpl.finish(ExternalProcessImpl.java:192)
 at com.atlassian.utils.process.ExternalProcessImpl$AsynchronousOutputHandlerRunnable.maybeFinish(ExternalProcessImpl.java:730)
 at com.atlassian.utils.process.ExternalProcessImpl$AsynchronousOutputHandlerRunnable.run(ExternalProcessImpl.java:724)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:748)
2017-08-11 12:23:32,041 INFO [ListenableFutureAdapter-thread-8] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] startup Starting Synchrony and enabling Collaborative Editing
2017-08-11 12:23:32,099 INFO [synchrony-interop-executor:thread-3] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] isSynchronyProxyEnabled proxy port present: false
2017-08-11 12:23:32,099 INFO [synchrony-interop-executor:thread-3] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] isSynchronyProxyEnabled app config synchrony.proxy.enabled: true
2017-08-11 12:23:32,259 INFO [synchrony-interop-executor:thread-3] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] debugPrintEnvironment Synchrony working dir: /local2/atlassian/application-data/confluence
2017-08-11 12:23:32,259 INFO [synchrony-interop-executor:thread-3] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] debugPrintEnvironment /local2/atlassian/confluence/jre/bin/java -classpath /local2/atlassian/confluence/temp/1.0.0-release-confluence_6.1-a1ab321e.jar:/local2/atlassian/confluence/confluence/WEB-INF/lib/h2-1.3.176.jar -Xss2048k -Xmx1g synchrony.core sql
2017-08-11 12:23:32,325 INFO [ListenableFutureAdapter-thread-9] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] isSynchronyProxyEnabled proxy port present: false
2017-08-11 12:23:32,325 INFO [ListenableFutureAdapter-thread-9] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] isSynchronyProxyEnabled app config synchrony.proxy.enabled: true
2017-08-11 12:23:32,328 INFO [ListenableFutureAdapter-thread-9] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] updateSynchronyConfiguration Synchrony External Base URL: http://kingpin.xxxxx.co.nz:8091/synchrony-proxy,http://kingpin.xxxxx.co.nz:8091/synchrony-proxy
2017-08-11 12:23:32,328 INFO [ListenableFutureAdapter-thread-9] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] updateSynchronyConfiguration Synchrony External Service URL: http://kingpin.xxxxx.co.nz:8091/synchrony-proxy/v1
2017-08-11 12:23:32,328 INFO [ListenableFutureAdapter-thread-9] [plugins.synchrony.bootstrap.DefaultSynchronyProcessManager] updateSynchronyConfiguration Synchrony Internal Service URL: http://127.0.0.1:8091/synchrony/v1
2017-08-11 12:24:05,667 WARN [ListenableFutureAdapter-thread-8] [plugins.synchrony.bootstrap.DefaultSynchronyMonitor] lambda$null$3 Rescheduled heartbeat check failed.
 -- url: /rest/synchrony-interop/restart | referer: http://kingpin.xxxxx.co.nz:8091/admin/confluence-collaborative-editor-plugin/configure.action | traceId: a48abb243a3315c4 | userName: shand
com.atlassian.util.concurrent.TimedOutException: Timed out after: 33 SECONDS
 at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.lambda$pollHeartbeat$4(DefaultSynchronyMonitor.java:96)
 at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.pollHeartbeat(DefaultSynchronyMonitor.java:119)
 at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.lambda$null$1(DefaultSynchronyMonitor.java:102)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
 at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:748)
2017-08-11 12:24:05,675 WARN [ListenableFutureAdapter-thread-8] [plugins.synchrony.config.DefaultSynchronyConfigurationManager] enableSharedDrafts [Collab editing plugin] Enabling Shared Drafts
 -- url: /rest/synchrony-interop/restart | referer: http://kingpin.xxxxx.co.nz:8091/admin/confluence-collaborative-editor-plugin/configure.action | traceId: a48abb243a3315c4 | userName: shand
```

I'm assuming that the problem with collaborative editing is this Synchrony error. Any suggestions what I needs to do to get Synchrony running properly?  

Thanks,

Adam.


Answers:
author: Steven F Behnke
body: I've never seen this issue. Synchrony runs by default on port 8091. It's possible to override the port that this microservice runs on by changing a Confluence system property: synchrony.port

I've linked the appropriate property on this page: <https://confluence.atlassian.com/doc/configuring-system-properties-168002854.html#ConfiguringSystemProperties-synchrony.port(formerlyknownasreza.port>)

The link brings you to the documentation for the synchrony.port setting. The beginning of the documentation indicates where the file should be located and how to edit.

You'll need to restart Confluence after changing this. Make sure BOTH Confluence and Synchrony have stopped after issuing the stop command by running ps -ef \| grep java and checking the output.

comments: author: Adam
body: Oh. Doh!

I've fixed it. When the demo installer script told me that it couldn't bind to port 8090 it asked me to choose another port and I chose 8091, without realising that was the default port that Synchrony ran on.

I've changed the connector port to 8888 and restarted Confluence and everything seems to be working as expected.

Thanks for the tip!


Tags: synchrony