Hazelcast CANNOT start on this node. No matching network interface found.
This article applies to Confluence Data Center 5.6 or later.
Symptoms
Confluence Data Center node or Synchrony are unable to start with the following error appearing in the atlassian-confluence.log and/or atlassian-synchrony.log
:
java.lang.RuntimeException: Hazelcast CANNOT start on this node. No matching network interface found.
Interface matching must be either disabled or updated in the hazelcast.xml config file.
at com.hazelcast.instance.DefaultAddressPicker.pickAddress(DefaultAddressPicker.java:180)
If you are using Docker, see the following article for that issue: Interface IP is incorrect and not found while starting Hazelcast in a dockerized environment for Confluence Data Center
Cause
An incorrect value is specified for the network interface property within <confluence-home-folder>/confluence.cfg.xml
:
<property name="confluence.cluster.interface">wlan0</property>
Resolution
If the issue affects the start up of the DC cluster, then follow option 1 below.
If the issue affects the start up of Synchrony (especially within Windows environments), then try option 1 first. If the issue still persists, then implement option 2.
Option 1 - DC Cluster
- Download list-interfaces.jar from CONFSERVER-10979 - List confluence cluster interface onto your Confluence node
Run:
java -jar list-interfaces.jar
Identify the interface name for that node that matches to the Confluence node IP address, in this example it is en0 that matches 192.168.0.1 (my sample Confluence Node IP):
% java -jar list-interfaces.jar interfaces.size() = 2 networkInterface[0] = name:en0 (en0) ([/fe80:0:0:0:105a:1ff1:8033:4968%en0/64 [null], /192.168.0.1/24 [/192.0.0.255]]) networkInterface[1] = name:lo0 (lo0) ([/fe80:0:0:0:0:0:0:1%lo0/64 [null], /0:0:0:0:0:0:0:1/128 [null], /169.254.169.254/8 [null], /127.0.0.1/8 [null]])
- Shutdown Confluence
Modify the following interface line in
<confluence-home-folder>/confluence.cfg.xml
to match what was returned by the list-interfaces.jar command:<property name="confluence.cluster.interface">en0</property>
- Start the Confluence DC node
- Once the node has fully started, repeat the above steps on the remaining Confluence DC nodes
Notice some nodes may have a different interface name. Inspect the output of the command on all of them and set the name accordingly.
Option 2 - Synchrony Startup Only
Update the synchrony-args.properties file:
- Locate the synchrony-args.properties file in the <confluence-home-directory>
- Using admin privileges, edit the synchrony-args.properties file by adding the following parameters:
- Insert the following lines, replacing <IP> with the appropriate IP address of the server:
- cluster.interfaces=<IP>
- synchrony.cluster.bind=<IP>
- Save the file
- Restart Confluence