Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-26952

LinkageError: loader constraint violation for class io.netty.*

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not a Bug
    • Blocker
    • None
    • None
    • Classloading, Clustering
    • None
    • False
    • None
    • False

    Description

      With XP5 we are encountering failure of hotrod connection to datagrid server. With EAP8 same scenario works ok.

      07:04:06,318 WARN  [io.netty.channel.ChannelInitializer] (HotRod-client-async-pool-1-12) Failed to initialize a channel. Closing: [id: 0x2ae7b5cc]: java.lang.LinkageError: loader constraint violation for class org.infinispan.client.hotrod.impl.transport.netty.HintingByteBuf: when selecting overriding method 'io.netty.util.ReferenceCounted org.infinispan.client.hotrod.impl.transport.netty.HintingByteBuf.touch(java.lang.Object)' the class loader 'deployment.ROOT.war' @2c4e220c of the selected method's type org.infinispan.client.hotrod.impl.transport.netty.HintingByteBuf, and the class loader 'io.netty.netty-buffer@4.1.100.Final-redhat-00001' @e9ab2ad for its super type io.netty.buffer.ByteBuf have different Class objects for the type io.netty.util.ReferenceCounted used in the signature (org.infinispan.client.hotrod.impl.transport.netty.HintingByteBuf is in unnamed module of loader 'deployment.ROOT.war' @2c4e220c, parent loader 'app'; io.netty.buffer.ByteBuf is in unnamed module of loader 'io.netty.netty-buffer@4.1.100.Final-redhat-00001' @e9ab2ad, parent loader 'app')
      	at deployment.ROOT.war//org.infinispan.client.hotrod.impl.transport.netty.HintedReplayingDecoder.<init>(HintedReplayingDecoder.java:23)
      	at deployment.ROOT.war//org.infinispan.client.hotrod.impl.transport.netty.HeaderDecoder.<init>(HeaderDecoder.java:54)
      	at deployment.ROOT.war//org.infinispan.client.hotrod.impl.transport.netty.ChannelInitializer.initChannel(ChannelInitializer.java:120)
      	at deployment.ROOT.war//io.netty.channel.ChannelInitializer.initChannel(ChannelInitializer.java:129)
      	at deployment.ROOT.war//io.netty.channel.ChannelInitializer.handlerAdded(ChannelInitializer.java:112)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannelHandlerContext.callHandlerAdded(AbstractChannelHandlerContext.java:1114)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:609)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPipeline.access$100(DefaultChannelPipeline.java:46)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPipeline$PendingHandlerAddedTask.execute(DefaultChannelPipeline.java:1463)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPipeline.callHandlerAddedForAllHandlers(DefaultChannelPipeline.java:1115)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPipeline.invokeHandlerAddedIfNeeded(DefaultChannelPipeline.java:650)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:514)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
      	at deployment.ROOT.war//io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
      	at deployment.ROOT.war//io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
      	at deployment.ROOT.war//io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
      	at deployment.ROOT.war//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:416)
      	at deployment.ROOT.war//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      	at deployment.ROOT.war//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:840)
      
      07:04:06,321 ERROR [org.infinispan.HOTROD] (HotRod-client-async-pool-1-12) ISPN004007: Exception encountered. Retry 10 out of 10: io.netty.resolver.dns.DnsResolveContext$SearchDomainUnknownHostException: Failed to resolve 'jdg-cache-htrd' [A(1)] and search domain query for configured domains failed as well: [mchoma2.svc.cluster.local, svc.cluster.local, cluster.local, eapqe-034-nvf2.eapqe.psi.redhat.com]
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.finishResolve(DnsResolveContext.java:1097)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.tryToFinishResolve(DnsResolveContext.java:1044)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:432)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.access$700(DnsResolveContext.java:66)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext$2.operationComplete(DnsResolveContext.java:500)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:185)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.addListener(DefaultPromise.java:35)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:463)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:1163)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:372)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:298)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:98)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:261)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1227)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1213)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1155)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAll(DnsNameResolver.java:1104)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAll(DnsNameResolver.java:1072)
      	at deployment.ROOT.war//io.netty.resolver.SimpleNameResolver.resolveAll(SimpleNameResolver.java:79)
      	at deployment.ROOT.war//io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:96)
      	at deployment.ROOT.war//io.netty.resolver.dns.InflightNameResolver.resolveAll(InflightNameResolver.java:71)
      	at deployment.ROOT.war//io.netty.resolver.dns.InflightNameResolver.resolveAll(InflightNameResolver.java:56)
      	at deployment.ROOT.war//io.netty.resolver.RoundRobinInetAddressResolver.doResolve(RoundRobinInetAddressResolver.java:55)
      	at deployment.ROOT.war//io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:61)
      	at deployment.ROOT.war//io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:53)
      	at deployment.ROOT.war//io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:55)
      	at deployment.ROOT.war//io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:31)
      	at deployment.ROOT.war//io.netty.resolver.AbstractAddressResolver.resolve(AbstractAddressResolver.java:106)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:220)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:990)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
      	at deployment.ROOT.war//io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
      	at deployment.ROOT.war//io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
      	at deployment.ROOT.war//io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
      	at deployment.ROOT.war//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:416)
      	at deployment.ROOT.war//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      	at deployment.ROOT.war//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:840)
      Caused by: io.netty.resolver.dns.DnsNameResolverException: [3744: /172.122.0.10:53] DefaultDnsQuestion(jdg-cache-htrd.mchoma2.svc.cluster.local. IN A) failed to send a query '3744' via UDP (no stack trace available)
      Caused by: io.netty.handler.codec.EncoderException: java.lang.LinkageError: loader constraint violation in interface itable initialization for class io.netty.channel.socket.DatagramPacket: when selecting method 'io.netty.util.ReferenceCounted io.netty.util.ReferenceCounted.touch(java.lang.Object)' the class loader 'io.netty.netty-common@4.1.100.Final-redhat-00001' @2dce5ec6 for super interface io.netty.util.ReferenceCounted, and the class loader 'deployment.ROOT.war' @2c4e220c of the selected method's class, io.netty.channel.socket.DatagramPacket have different Class objects for the type io.netty.util.ReferenceCounted used in the signature (io.netty.util.ReferenceCounted is in unnamed module of loader 'io.netty.netty-common@4.1.100.Final-redhat-00001' @2dce5ec6, parent loader 'app'; io.netty.channel.socket.DatagramPacket is in unnamed module of loader 'deployment.ROOT.war' @2c4e220c, parent loader 'app')
      	at deployment.ROOT.war//io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1015)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel.write(AbstractChannel.java:301)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsQueryContext.writeQuery(DnsQueryContext.java:260)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsQueryContext.sendQuery(DnsQueryContext.java:221)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsQueryContext.writeQuery(DnsQueryContext.java:208)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.query0(DnsNameResolver.java:1345)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:459)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.query(DnsResolveContext.java:1163)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.internalResolve(DnsResolveContext.java:372)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.doSearchDomainQuery(DnsResolveContext.java:298)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsAddressResolveContext.doSearchDomainQuery(DnsAddressResolveContext.java:98)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsResolveContext.resolve(DnsResolveContext.java:261)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.resolveNow(DnsNameResolver.java:1227)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached0(DnsNameResolver.java:1213)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAllUncached(DnsNameResolver.java:1155)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAll(DnsNameResolver.java:1104)
      	at deployment.ROOT.war//io.netty.resolver.dns.DnsNameResolver.doResolveAll(DnsNameResolver.java:1072)
      	at deployment.ROOT.war//io.netty.resolver.SimpleNameResolver.resolveAll(SimpleNameResolver.java:79)
      	at deployment.ROOT.war//io.netty.resolver.dns.InflightNameResolver.resolve(InflightNameResolver.java:96)
      	at deployment.ROOT.war//io.netty.resolver.dns.InflightNameResolver.resolveAll(InflightNameResolver.java:71)
      	at deployment.ROOT.war//io.netty.resolver.dns.InflightNameResolver.resolveAll(InflightNameResolver.java:56)
      	at deployment.ROOT.war//io.netty.resolver.RoundRobinInetAddressResolver.doResolve(RoundRobinInetAddressResolver.java:55)
      	at deployment.ROOT.war//io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:61)
      	at deployment.ROOT.war//io.netty.resolver.SimpleNameResolver.resolve(SimpleNameResolver.java:53)
      	at deployment.ROOT.war//io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:55)
      	at deployment.ROOT.war//io.netty.resolver.InetSocketAddressResolver.doResolve(InetSocketAddressResolver.java:31)
      	at deployment.ROOT.war//io.netty.resolver.AbstractAddressResolver.resolve(AbstractAddressResolver.java:106)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap.doResolveAndConnect0(Bootstrap.java:220)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap.access$000(Bootstrap.java:46)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:189)
      	at deployment.ROOT.war//io.netty.bootstrap.Bootstrap$1.operationComplete(Bootstrap.java:175)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:590)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:557)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:492)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.setValue0(DefaultPromise.java:636)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.setSuccess0(DefaultPromise.java:625)
      	at deployment.ROOT.war//io.netty.util.concurrent.DefaultPromise.trySuccess(DefaultPromise.java:105)
      	at deployment.ROOT.war//io.netty.channel.DefaultChannelPromise.trySuccess(DefaultChannelPromise.java:84)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.safeSetSuccess(AbstractChannel.java:990)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.register0(AbstractChannel.java:516)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe.access$200(AbstractChannel.java:429)
      	at deployment.ROOT.war//io.netty.channel.AbstractChannel$AbstractUnsafe$1.run(AbstractChannel.java:486)
      	at deployment.ROOT.war//io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173)
      	at deployment.ROOT.war//io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166)
      	at deployment.ROOT.war//io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
      	at deployment.ROOT.war//io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:416)
      	at deployment.ROOT.war//io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
      	at deployment.ROOT.war//io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
      	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
      	at java.base/java.lang.Thread.run(Thread.java:840)
      Caused by: java.lang.LinkageError: loader constraint violation in interface itable initialization for class io.netty.channel.socket.DatagramPacket: when selecting method 'io.netty.util.ReferenceCounted io.netty.util.ReferenceCounted.touch(java.lang.Object)' the class loader 'io.netty.netty-common@4.1.100.Final-redhat-00001' @2dce5ec6 for super interface io.netty.util.ReferenceCounted, and the class loader 'deployment.ROOT.war' @2c4e220c of the selected method's class, io.netty.channel.socket.DatagramPacket have different Class objects for the type io.netty.util.ReferenceCounted used in the signature (io.netty.util.ReferenceCounted is in unnamed module of loader 'io.netty.netty-common@4.1.100.Final-redhat-00001' @2dce5ec6, parent loader 'app'; io.netty.channel.socket.DatagramPacket is in unnamed module of loader 'deployment.ROOT.war' @2c4e220c, parent loader 'app')
      	at deployment.ROOT.war//io.netty.handler.codec.dns.DatagramDnsQueryEncoder.encode(DatagramDnsQueryEncoder.java:72)
      	at deployment.ROOT.war//io.netty.handler.codec.dns.DatagramDnsQueryEncoder.encode(DatagramDnsQueryEncoder.java:33)
      	at deployment.ROOT.war//io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90)
      	... 55 more
      

      What is suspicious in XP5 there is lower version of netty-codec-http2 manifest than in EAP8.

      groupId: io.netty
      artifactId: netty-codec-http2
      version: 4.1.92.Final-redhat-00001
      

      netty-codec-http2 is not explicitly mentioned in 8.0 manifest, but all io.netty artifacts are of version 4.1.100.Final-redhat-00001.

      groupId: io.netty
      artifactId: netty-buffer
      version: 4.1.100.Final-redhat-00001
      

      My guess would be lower version of io.netty artifact in XP5 manifest is causing mess in versions.

      Attachments

        Issue Links

          Activity

            People

              pferraro@redhat.com Paul Ferraro
              mchoma@redhat.com Martin Choma
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: