I have multiple clusters of consul servers (in a QA environment). Most are working without issue. On one cluster, one of the systems is logging an Exception every two minutes
2016-07-18 08:38:49,716 ERROR [com.hazelcast.spi.discovery.integration.DiscoveryService] (cached4) [10.210.5.65]:5701 [dev] [3.6.2] discoverNodes() unexpected error: Consul request failed: com.orbitz.consul.ConsulException: Consul request failed
at com.orbitz.consul.util.Http.extractConsulResponse(Http.java:49)
at com.orbitz.consul.HealthClient.getHealthyServiceInstances(HealthClient.java:317)
at com.orbitz.consul.HealthClient.getHealthyServiceInstances(HealthClient.java:300)
at org.bitsofinfo.hazelcast.discovery.consul.ConsulDiscoveryStrategy.discoverNodes(ConsulDiscoveryStrategy.java:183)
at com.jungo.hazelcast.ConsulDiscoveryStrategyWrapper.discoverNodes(ConsulDiscoveryStrategyWrapper.java:61)
at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.discoverNodes(DefaultDiscoveryService.java:74)
at com.hazelcast.cluster.impl.DiscoveryJoiner.getPossibleAddresses(DiscoveryJoiner.java:42)
at com.hazelcast.cluster.impl.TcpIpJoiner.searchForOtherClusters(TcpIpJoiner.java:501)
at com.hazelcast.cluster.impl.SplitBrainHandler.searchForOtherClusters(SplitBrainHandler.java:75)
at com.hazelcast.cluster.impl.SplitBrainHandler.run(SplitBrainHandler.java:42)
at com.hazelcast.util.executor.CachedExecutorServiceDelegate$Worker.run(CachedExecutorServiceDelegate.java:212)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_66]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_66]
at com.hazelcast.util.executor.HazelcastManagedThread.executeRun(HazelcastManagedThread.java:76)
at com.hazelcast.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:92)
Caused by: com.orbitz.fasterxml.jackson.databind.JsonMappingException: Instantiation of [simple type, class com.orbitz.consul.model.health.ImmutableNode] value failed (java.lang.IllegalStateException): Cannot build Node, some of required attributes are not set [taggedAddresses]
at [Source: java.io.InputStreamReader@2e79eda5; line: 1, column: 95] (through reference chain: java.util.ArrayList[0]->com.orbitz.consul.model.health.Json["Node"])
at com.orbitz.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:262)
at com.orbitz.fasterxml.jackson.databind.deser.std.StdValueInstantiator.wrapAsJsonMappingException(StdValueInstantiator.java:445)
at com.orbitz.fasterxml.jackson.databind.deser.std.StdValueInstantiator.rewrapCtorProblem(StdValueInstantiator.java:464)
Note that the reported problem is the missing required attribute taggedAddresses. Invoking
curl http://localhost:8500/v1/health/service/hazelcast
I can see in fact that the taggedAddresses property is not returned. The strange thing though is that it isn't returned on any system - not on the other systems in this cluster and not on any of the other systems that I have deployed (which are all configured similarly). However, this is the only system logging this exception every two minutes. Note that as I have said that they are all configured the same and they all have the same versions of all of the components/jar files/classes.
I've googled to try and understand the problem, but I am stumped. Does anyone have any idea why I am getting this exception and/or have any recommendations on what to do to resolve it?
Peter