Thanks for following up!
Justin On Wed, Mar 15, 2023 at 12:56 PM prateekjai...@gmail.com < prateekjai...@gmail.com> wrote: > Hi All, > > I am able to fix this issue. Posting my solution here, just in case anyone > else faces a similar issue. I converted deployment to a statefulset (to get > predictable names). Then used headless services for each pod. This enabled > both master and slave pods to lookup each other just by pod name. In case > anyone is looking for more details, feel free to connect. > > Regards, > Prateek Jain > > -------------------------------------------------------------- > EXPECTATION : Causes all troubles...... > -------------------------------------------------------------- > > > On Wed, Mar 15, 2023 at 3:54 PM prateekjai...@gmail.com < > prateekjai...@gmail.com> wrote: > > > > > Hi Justin, > > > > Thanks for replying, I think artemis is failing to lookup POD by its > name > > because we cannot just get POD IP just by its name. Given below is the > > error which is getting repeated in logs: > > > > 2023-03-15 10:04:06,611 INFO [org.apache.activemq.artemis] AMQ241002: > > Artemis Jolokia REST API available at > > http://jms-01-deployment-6d7dcb8ccd-j7pxl:8161/console/jolokia > > 2023-03-15 10:04:06,611 INFO [org.apache.activemq.artemis] AMQ241004: > > Artemis Console available at > > http://jms-01-deployment-6d7dcb8ccd-j7pxl:8161/console > > 2023-03-15 10:04:10,868 ERROR [org.apache.activemq.artemis.core.client] > > AMQ214016: Failed to create netty connection > > java.net.UnknownHostException: jms-01-deployment-6d7dcb8ccd-2t9g2 > > at java.net.InetAddress$CachedAddresses.get(InetAddress.java:797) > > ~[?:?] > > at java.net.InetAddress.getAllByName0(InetAddress.java:1524) > ~[?:?] > > at java.net.InetAddress.getAllByName(InetAddress.java:1382) > ~[?:?] > > at java.net.InetAddress.getAllByName(InetAddress.java:1306) > ~[?:?] > > at java.net.InetAddress.getByName(InetAddress.java:1256) ~[?:?] > > at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:156) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at io.netty.util.internal.SocketUtils$8.run(SocketUtils.java:153) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at java.security.AccessController.doPrivileged(Native Method) > > ~[?:?] > > at > > io.netty.util.internal.SocketUtils.addressByName(SocketUtils.java:153) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.resolver.DefaultNameResolver.doResolve(DefaultNameResolver.java:41) > > ~[netty-resolver-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:61) > > ~[netty-resolver-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:53) > > ~[netty-resolver-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:55) > > ~[netty-resolver-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:31) > > ~[netty-resolver-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.resolver.AbstractAddressResolver.resolve(AbstractAddressResolver.java:106) > > ~[netty-resolver-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:206) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:180) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:166) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:990) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486) > > ~[netty-transport-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:406) > > ~[netty-transport-classes-epoll-4.1.86.Final.jar:4.1.86.Final] > > at > > > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) > > ~[netty-common-4.1.86.Final.jar:4.1.86.Final] > > at > > > org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118) > > ~[artemis-commons-2.28.0.jar:?] > > 2023-03-15 10:04:10,868 ERROR [org.apache.activemq.artemis.core.client] > > AMQ214016: Failed to create netty connection > > java.net.UnknownHostException: jms-01-deployment-6d7dcb8ccd-2t9g2 > > at java.net.InetAddress$CachedAddresses.get(InetAddress.java:797) > > ~[?:?] > > at java.net.InetAddress.getAllByName0(InetAddress.java:1524) > ~[?:?] > > at java.net.InetAddress.getAllByName(InetAddress.java:1382) > ~[?:?] > > at java.net.InetAddress.getAllByName(InetAddress.java:1306) > ~[?:?] > > at java.net.InetAddress.getByName(InetAddress.java:1256) ~[?:?] > > > > IMO, I need to find some way in which the pod name resolves to pod ip. If > > you have any recommendations, let me know. > > > > Regards, > > Prateek Jain > > > > > > -------------------------------------------------------------- > > EXPECTATION : Causes all troubles...... > > -------------------------------------------------------------- > > > > > > On Wed, Mar 15, 2023 at 2:23 PM Justin Bertram <jbert...@apache.org> > > wrote: > > > >> ActiveMQ Artemis offers JGroups integration for cloud use-cases such as > >> yours, but, generally speaking, we don't really provide support for > >> JGroups > >> in the ActiveMQ community since we don't maintain the JGroups code-base > >> and > >> don't know its inner workings. > >> > >> That said, I would suggest that the JGroups configuration using > FILE_PING > >> shipped in the examples may not be the best for your use-case. We chose > >> the > >> FILE_PING configuration because it was the simplest for the use-cases in > >> the examples (i.e. where all the nodes are running on the same machine > on > >> different ports with access to the same disk). However, something like > >> KUBE_PING [1] would probably be a better fit for your use-case since you > >> are, in fact, using Kubernetes. > >> > >> In any event, it's hard to comment on what may be happening without more > >> information. You've only provided a snippet of the stack-trace for the > >> UnknownHostException so it's not clear what class is actually attempting > >> that operation. > >> > >> > >> Justin > >> > >> [1] https://github.com/jgroups-extras/jgroups-kubernetes > >> > >> On Wed, Mar 15, 2023 at 7:27 AM prateekjai...@gmail.com < > >> prateekjai...@gmail.com> wrote: > >> > >> > Hi All, > >> > > >> > How are you? I am a bit confused about the errors reported by artemis > >> slave > >> > instance (running in clustered mode using jgroups). I might be missing > >> > something here so please bear with me. > >> > > >> > Deployment details: I am running 2 pods of artemis in master/slave > >> > configuration in k8s. It supports NFS v4. I am using jgroups > >> configuration > >> > (same file which is supplied in examples of artemis) and I can see > that > >> > correct pod names and IPs are updated in share directory > >> > > >> > -------- output from jgroups file ---------------- > >> > root@jms-01-deployment-6d7dcb8ccd-2t9g2:/opt# cat > >> > > >> > > >> > /usr/share/artemis-jgroups/active_broadcast_channel/ab62408d-6a7a-4894-9923-2649d8bf3b28.jms-01-deployment-6d7dcb8ccd-2t9g2-29095.list > >> > > >> > jms-01-deployment-6d7dcb8ccd-2t9g2-29095 > >> > ab62408d-6a7a-4894-9923-2649d8bf3b28 192.168.48.154:7800 T > >> > jms-01-deployment-6d7dcb8ccd-j7pxl-34353 > >> > 5b3d099b-8e5f-4dd0-ab43-604ad1ae87c3 192.168.199.2:7800 F > >> > -------------------------------------------------------- > >> > > >> > POD "jms-01-deployment-6d7dcb8ccd-2t9g2" is the master and another is > >> > slave. Correct POD ips are listed there. But in log/artemis.log file > of > >> > slave pod, I see these logs > >> > > >> > ------------------------------- > >> > 2023-03-15 11:29:51,519 ERROR > [org.apache.activemq.artemis.core.client] > >> > AMQ214016: Failed to create netty connection > >> > java.net.UnknownHostException: jms-01-deployment-6d7dcb8ccd-2t9g2 > >> > at java.net.InetAddress$CachedAddresses.get(InetAddress.java:797) > ~[?:?] > >> > at java.net.InetAddress.getAllByName0(InetAddress.java:1524) ~[?:?] > >> > at java.net.InetAddress.getAllByName(InetAddress.java:1382) ~[?:?] > >> > ----------------------------------- > >> > > >> > jgroups is correctly creating and updating files. IPs of master/slave > >> pods > >> > are visible from each other. I have tested them using command > >> > > >> > "./artemis check node". > >> > Right now I have created deployment objects. Is it necessary to create > >> > stateful sets? > >> > > >> > Am I missing something here? Let me know if you need more information > on > >> > this. > >> > > >> > > >> > Regards, > >> > Prateek Jain > >> > > >> > > >> > -------------------------------------------------------------- > >> > EXPECTATION : Causes all troubles...... > >> > -------------------------------------------------------------- > >> > > >> > > >