JIRA 7.6.X Only One Node Will Start in Cluster
プラットフォームについて: サーバーと Data Center のみ。この記事は、サーバーおよび Data Center プラットフォームのアトラシアン製品にのみ適用されます。
This article applies to to Jira Data Center documentation and is not relevant for a standard JIRA installation.
問題
After successfully starting one node in the Cluster, Node 2 fails to startup with the following stack trace in atlassian-jira.log
localhost-startStop-1 ERROR [c.a.jira.upgrade.PluginSystemLauncher] A fatal error occured during initialisation. JIRA has been locked.
com.atlassian.jira.InfrastructureException: Error occurred while starting Plugin Manager. Unable to resolve component: interface com.atlassian.plugin.SplitStartupPluginSystemLifecycle
...
at com.atlassian.jira.cluster.distribution.JiraCacheManagerPeerProvider.lambda$wrapCachePeer$4(JiraCacheManagerPeerProvider.java:112)
Caused by: java.rmi.NoSuchObjectException: no such object in table
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
at net.sf.ehcache.distribution.RMICachePeer_Stub.getName(Unknown Source)
診断
環境
- Mulit-node cluster JIRA Data Center
原因
There is most likely something in the setenv.sh that is setting the hostname to something that isn't resolvable outside the node
example:
-Djava.rmi.server.hostname=localhost
-Djava.rmi.server.hostname
sets the hostname the JVM will use for RMI operations, and it overrides the setting ehcache.listener.hostName
. However, JIRA will still detect its hostname during startup and store it on the database table clusternode; this discovery process does not take the value of -Djava.rmi.server.hostname
in consideration. Make sure the value of -Djava.rmi.server.hostname
matches the value of ip
in the database table clusternode
, or that ehcache.listener.hostName
in JIRA_LOCAL_HOME/cluster.properties
matches the value of -Djava.rmi.server.hostname
. Failure to do so might result in failed cluster cache replication.
ソリューション
Remove the offending input or set it to the machine's IP address or the hostname:
-Djava.rmi.server.hostname=xxx.xxx.xxx
So you must either remove the -Djava.rmi.server.hostname= or set it to something resolvable.
JIRA must be restarted for this change to take effect.