Synchrony Heartbeat fails due to a TimedOutException
プラットフォームについて: Data Center のみ - この記事は、Data Center プラットフォームのアトラシアン製品にのみ適用されます。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
要約
Synchrony fails and it is reported in Confluence UI as stopped or having errors.
環境
Confluence 7.19.X and Confluence 8.X
診断
Reviewing the atlassian-confluence.log
, it can be observed that the Synchrony heartbeat check failed due to a TimedOutException:
2023-11-07 08:41:54,560 WARN [synchrony-interop-executor:thread-8] [plugins.synchrony.bootstrap.DefaultSynchronyMonitor] lambda$pollHeartbeat$1 Rescheduled heartbeat check failed.
-- url: /rest/synchrony-interop/restart | userName: admin | referer: https://CONFLUENCE_URL/admin/confluence-collaborative-editor-plugin/configure.action | traceId: 403fa3a71a94ee0f
io.atlassian.util.concurrent.TimedOutException: Timed out after: 30076280311 NANOSECONDS
at com.atlassian.confluence.plugins.synchrony.bootstrap.DefaultSynchronyMonitor.lambda$pollHeartbeat$0(DefaultSynchronyMonitor.java:137)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
...
...
原因
1) Synchrony is using the URL, http://127.0.0.1:8091/synchrony which should be escaped by the forward proxy.
2) There is a misconfiguration on the reverse proxy level such as the wrong Synchrony port being used.
ソリューション
1) Follow the configuration described in our Configuring Web Proxy Support for Confluence documentation:
If you're using Confluence 6.0 or later with Synchrony, you'll need to pass the following to ensure Confluence can connect directly to Synchrony.
Replace localhost|127.0.0.1 with your Synchrony IP if you have used the synchrony.host system property to change the IP Synchrony uses.
-Dhttp.nonProxyHosts=localhost|127.0.0.1 -Dhttps.nonProxyHosts=localhost|127.0.0.1
Note: You may need to escape the pipe character | in some command-line environments.
If the http.nonProxyHosts property is not configured, all web requests will be sent to the proxy.
Remember to restart Confluence once the change is implemented.
2) If you are using the direct connection to the Synchrony port at the reverse proxy level, check your reverse proxy configuration and make sure that /synchrony requests are redirected to the correct Synchrony port which is 8091 by default.