JIRA Data Center Asynchronous Cache replication failing health check
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
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.
*Fisheye および Crucible は除く
This article applies to to Jira Data Center documentation and is not relevant for a standard JIRA installation.
問題
Cluster health check is failing for cache replication and the following stack trace is present in Atlassian-jira.log
{cacheName='', action=REMOVE_ALL, key=null, value=null, creationTimeInMillis=1534168756786}from cache replication queue: [queueId=queue_node1_6_4701d15959342d6659cddeeebe1bdbe7, queuePath=/var/atlassian/jira-home/localq/queue_nodexxxxxx7], failuresCount: 10/10. Removing from queue. Error: java.rmi.NoSuchObjectException: no such object in table
com.atlassian.jira.cluster.distribution.localq.LocalQCacheOpSender$UnrecoverableFailure: java.rmi.NoSuchObjectException: no such object in table
at com.atlassian.jira.cluster.distribution.localq.rmi.LocalQCacheOpRMISender.send(LocalQCacheOpRMISender.java:88)
at com.atlassian.jira.cluster.distribution.localq.LocalQCacheOpReader.run(LocalQCacheOpReader.java:83)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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:745)
localq-reader-3 ERROR [c.a.j.c.distribution.localq.LocalQCacheOpReader] [LOCALQ] [VIA-COPY] Abandoning sending: LocalQCacheOp...failuresCount: 1/1. Removing from queue. Error: java.rmi.UnknownHostException: Unknown host: node1; nested exception is:
java.net.UnknownHostException: node1
Affected Versions:
Jira Data Center versions 7.9 and above with Clustering enabled
原因
Individual hostnames are not resolvable by other Jira Data Center nodes in the cluster.
This can also occur if there's an invalid hostname set by a JVM parameter:
-Djava.rmi.server.hostname=localhost
"-Djava.rmi.server.hostname="
parameter defined inside the "<install-path>/bin/setenv.sh"
will override the parameter "ehcache.listener.hostName="
in the file "<jira-home>/cluster.properties"
ソリューション
There are 3 possible solutions for this issue:
- Remove the offending input from the file "
<install-path>/bin/setenv.sh"
- Set this parameter value to the machine's IP address;
- Set this parameter value to a resolvable hostname;
JIRA must be restarted for this change to take effect