-
Type:
Suggestion
-
Resolution: Unresolved
-
None
-
Component/s: Data Center - Core
-
None
-
0
-
15
Summary
As a system admin on Windows
I want to be able to set network interface parameter confluence.cluster.interface on a fixed way
So that I can not use the name generated by Java and use one that is fixed on Windows instead
Problem Definition
Customers report that the network interface name (for example, eth0) changes by itself on Windows, sometimes, on reboot.
That is not a consistent behavior and cannot be reproduced.
In this case, it changed form eth6 to eth7 and caused Synchrony to fail due to Hazelcast not finding it:
Hazelcast CANNOT start on this node. No matching network interface found.\nInterface matching must be either disabled or updated in the hazelcast.xml config file.
More information:
https://stackoverflow.com/questions/58632235/get-name-of-a-specific-network-interface-in-java
http://hg.openjdk.java.net/jdk8/jdk8/jdk/file/82b276590b85/src/windows/native/java/net/NetworkInterface.c#l172
- Windows does not have any standard for device names so we are forced
- to use our own convention which is based on the normal Unix naming
- convention ("lo" for the loopback, eth0, eth1, .. for ethernet devices,
- tr0, tr1, .. for token ring, and so on). This convention gives us
- consistency across multiple Windows editions and also consistency with
- Solaris/Linux device names. Note that we always enumerate in index
- order and this ensures consistent device number across invocations.
*/
Workaround
Use the instruction on this kb, whenever that behavior is observed:
Hazelcast CANNOT start on this node. No matching network interface found.