hazelcast-docker-swarm-discovery-spi icon indicating copy to clipboard operation
hazelcast-docker-swarm-discovery-spi copied to clipboard

Is Compatibility with Hazelcast v4.x planned?

Open jeiroa opened this issue 3 years ago • 1 comments

  • hazelcast-docker-swarm-discovery-spi: 1.0-RC14-20210205
  • hazelcast: 4.0.3
  • Docker Engine: 20.10.6

I am trying the binding via DockerDNSRRMemberAddressProvider with the configuration indicated above and member are correctly resolved but then nodes cannot join the cluster because com.hazelcast.nio.Address class has been moved to com.hazelcast.cluster.Address in version 4.0.3.

Then, I am wondering if a compatible version of hazelcast-docker-swarm-discovery-spi with Hazelcast v4.x is planned, which it would be great.

Please find below some related logging:

2021-06-25 09:48:24.458  INFO 1 --- [main] s.d.s.d.DockerDNSRRMemberAddressProvider : Resolved domain name 'rdd-ngame-consumer-dev_rdd-ngame-consumer-service' to address(es): [rdd-ngame-consumer-dev_rdd-ngame-consumer-service/10.0.80.235, rdd-ngame-consumer-dev_rdd-ngame-consumer-service/10.0.80.236, rdd-ngame-consumer-dev_rdd-ngame-consumer-service/10.0.80.237]
2021-06-25 09:48:24.460  INFO 1 --- [main] s.d.s.d.DockerDNSRRMemberAddressProvider : Checking address /172.19.0.11
2021-06-25 09:48:24.460  INFO 1 --- [main] s.d.s.d.DockerDNSRRMemberAddressProvider : Checking address /10.0.80.235
2021-06-25 09:48:24.467 DEBUG 1 --- [main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Trying to bind inet socket address: /10.0.80.235:5701
2021-06-25 09:48:24.468 DEBUG 1 --- [main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Bind successful to inet socket address: /10.0.80.235:5701
2021-06-25 09:48:24.470  INFO 1 --- [ main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Using bind address: /10.0.80.235:5701
2021-06-25 09:48:24.470  INFO 1 --- [main] com.hazelcast.instance.AddressPicker     : [LOCAL] [dev] [4.0.3] Using public address: /10.0.80.235:5701
2021-06-25 09:48:25.751  INFO 1 --- [main] c.h.s.d.integration.DiscoveryService     : [10.0.80.235]:5701 [dev] [4.0.3] Resolved domain name 'rdd-ngame-consumer' to address(es): [rdd-ngame-consumer/10.0.80.235]
2021-06-25 09:48:25.752 ERROR 1 --- [main] c.h.i.cluster.impl.DiscoveryJoiner       : [10.0.80.235]:5701 [dev] [4.0.3] com/hazelcast/nio/Address
java.lang.NoClassDefFoundError: com/hazelcast/nio/Address
	at org.bitsofinfo.hazelcast.spi.docker.swarm.dnsrr.discovery.DockerDNSRRDiscoveryStrategy.discoverNodes(DockerDNSRRDiscoveryStrategy.java:124)
	at com.hazelcast.spi.discovery.impl.DefaultDiscoveryService.discoverNodes(DefaultDiscoveryService.java:71)
	at com.hazelcast.internal.cluster.impl.DiscoveryJoiner.getPossibleAddresses(DiscoveryJoiner.java:69)
	at com.hazelcast.internal.cluster.impl.DiscoveryJoiner.getPossibleAddressesForInitialJoin(DiscoveryJoiner.java:58)
	at com.hazelcast.internal.cluster.impl.TcpIpJoiner.joinViaPossibleMembers(TcpIpJoiner.java:136)
	at com.hazelcast.internal.cluster.impl.TcpIpJoiner.doJoin(TcpIpJoiner.java:96)
	at com.hazelcast.internal.cluster.impl.AbstractJoiner.join(AbstractJoiner.java:137)
	at com.hazelcast.instance.impl.Node.join(Node.java:809)
	at com.hazelcast.instance.impl.Node.start(Node.java:464)
	at com.hazelcast.instance.impl.HazelcastInstanceImpl.(HazelcastInstanceImpl.java:122)
	at com.hazelcast.instance.impl.HazelcastInstanceFactory.constructHazelcastInstance(HazelcastInstanceFactory.java:211)
	at com.hazelcast.instance.impl.HazelcastInstanceFactory.getOrCreateHazelcastInstance(HazelcastInstanceFactory.java:108)
	at com.hazelcast.core.Hazelcast.getOrCreateHazelcastInstance(Hazelcast.java:165)
	at org.springframework.boot.autoconfigure.hazelcast.HazelcastServerConfiguration.getHazelcastInstance(HazelcastServerConfiguration.java:52)
	at org.springframework.boot.autoconfigure.hazelcast.HazelcastServerConfiguration.access$000(HazelcastServerConfiguration.java:46)
	at org.springframework.boot.autoconfigure.hazelcast.HazelcastServerConfiguration$HazelcastServerConfigFileConfiguration.hazelcastInstance(HazelcastServerConfiguration.java:68)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:638)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:887)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:791)
	at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:541)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771)
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763)
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1329)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1318)
	at realtimedatadelivery.ngameconsumer.NGameConsumerServiceApplication.main(NGameConsumerServiceApplication.java:33)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
	at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
	at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: java.lang.ClassNotFoundException: com.hazelcast.nio.Address
	at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589)
	at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:135)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 78 common frames omitted
2021-06-25 09:48:25.753 DEBUG 1 --- [main] c.h.i.cluster.impl.DiscoveryJoiner       : [10.0.80.235]:5701 [dev] [4.0.3] PostJoin master: null, isMaster: false
2021-06-25 09:48:25.754 ERROR 1 --- [main] com.hazelcast.instance.impl.Node         : [10.0.80.235]:5701 [dev] [4.0.3] Could not join cluster. Shutting down now!
2021-06-25 09:48:25.755  INFO 1 --- [main] com.hazelcast.core.LifecycleService      : [10.0.80.235]:5701 [dev] [4.0.3] [10.0.80.235]:5701 is SHUTTING_DOWN

Thanks.

jeiroa avatar Jun 25 '21 10:06 jeiroa