You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Tim K <ti...@gmail.com> on 2023/01/15 17:26:23 UTC

Re: StaticMembers within Multiple Clusters

I hate to bring back my original thread and I am probably not doing
this correctly, but I've been seeing this message occur on my cluster.
My tomcat is now at 9.0.70.  Possibly there was a breaking change
since I first started using the cluster?

java.lang.NoClassDefFoundError: Could not initialize class
org.apache.catalina.tribes.ChannelException

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: StaticMembers within Multiple Clusters

Posted by Christopher Schultz <ch...@christopherschultz.net>.
Tim,

On 1/25/23 11:26, Tim K wrote:
>> Can you post the rest of that stack trace?
> Yes, here are 2 stack traces that were encountered.  We basically had
> the cluster working for a few years.  We introduced a new Valve for
> authentication purposes.  Also, with this change we had to set a proxy
> in CATALINA_OPTS, I'm not sure if that affected local communication
> between the nodes?  For now we commented out the cluster on each of
> our nodes in order to have it running.
> 
> Exception in thread "Tribes-Task-Receiver[Catalina-Channel]-9"
> java.lang.NoClassDefFoundError: Could not initialize class
> org.apache.catalina.tribes.ChannelException
> 
>                  at
> org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:110)
> 
>                  at
> org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:51)
> 
>                  at
> org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:65)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:83)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)
> 
>                  at
> org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.sendMessage(MessageDispatchInterceptor.java:93)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)
> 
>                  at
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(TcpFailureDetector.java:89)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)
> 
>                  at
> org.apache.catalina.tribes.group.interceptors.EncryptInterceptor.sendMessage(EncryptInterceptor.java:127)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)
> 
>                  at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:280)
> 
>                  at
> org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:231)
> 
>                  at
> org.apache.catalina.tribes.group.RpcChannel.messageReceived(RpcChannel.java:171)
> 
>                  at
> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:345)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)
> 
>                  at
> org.apache.catalina.tribes.group.interceptors.EncryptInterceptor.messageReceived(EncryptInterceptor.java:148)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)
> 
>                  at
> org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor.messageReceived(TcpPingInterceptor.java:182)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)
> 
>                  at
> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:114)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)
> 
>                  at
> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:288)
> 
>                  at
> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:272)
> 
>                  at
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:228)
> 
>                  at
> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:103)
> 
>                  at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> 
>                  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 
>                  at java.lang.Thread.run(Thread.java:750)

Hmm... no "caused by"? That's disappointing. NCDFE usually means "you 
done broke your install" but it says that the initialization of the 
class failed, not that the class wasn't actually found.

Any way you can attach a debugger and find out what's causing that to be 
thrown?

>> What was your previous version of Tomcat?
> We were always on version 9.  We keep it pretty much up to date with
> the latest available.  I am not sure of the sub-version we started at
> where it was working.  I'm guessing it was whatever version was the
> latest around Jan-2019.
> 
>> Did you upgrade all nodes at the same time, or are you upgrading a single node in the cluster?
> All are at the same version, we have 4, they all get updated at the same time.
> 
>> How did you upgrade (e.g. installer, unzip/untar/etc.)?
> untar

Yeah, that definitely smells weird. I have no specific advice (other 
than "try a debugger") but I do want to at least validate that it 
doesn't look like you are doing anything wrong, or misinterpreting 
something obvious :)

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: StaticMembers within Multiple Clusters

Posted by Tim K <ti...@gmail.com>.
> Can you post the rest of that stack trace?
Yes, here are 2 stack traces that were encountered.  We basically had
the cluster working for a few years.  We introduced a new Valve for
authentication purposes.  Also, with this change we had to set a proxy
in CATALINA_OPTS, I'm not sure if that affected local communication
between the nodes?  For now we commented out the cluster on each of
our nodes in order to have it running.

Exception in thread "Tribes-Task-Receiver[Catalina-Channel]-9"
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.catalina.tribes.ChannelException

                at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(ParallelNioSender.java:110)

                at
org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:51)

                at
org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:65)

                at
org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:83)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                at
org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.sendMessage(MessageDispatchInterceptor.java:93)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(TcpFailureDetector.java:89)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                at
org.apache.catalina.tribes.group.interceptors.EncryptInterceptor.sendMessage(EncryptInterceptor.java:127)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:280)

                at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:231)

                at
org.apache.catalina.tribes.group.RpcChannel.messageReceived(RpcChannel.java:171)

                at
org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:345)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)

                at
org.apache.catalina.tribes.group.interceptors.EncryptInterceptor.messageReceived(EncryptInterceptor.java:148)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)

                at
org.apache.catalina.tribes.group.interceptors.TcpPingInterceptor.messageReceived(TcpPingInterceptor.java:182)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)

                at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:114)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)

                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:96)

                at
org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:288)

                at
org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:272)

                at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:228)

                at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:103)

                at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

                at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

                at java.lang.Thread.run(Thread.java:750)

WARNING [https-jsse-nio-9443-exec-22]
org.apache.catalina.tribes.transport.nio.ParallelNioSender.keepalive
Error during keepalive test for
sender:[org.apache.catalina.tribes.transport.nio.NioSender@ee16415]

                java.nio.channels.NotYetConnectedException

                                at
sun.nio.ch.SocketChannelImpl.ensureReadOpen(SocketChannelImpl.java:258)

                                at
sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:299)

                                at
org.apache.catalina.tribes.transport.nio.NioSender.read(NioSender.java:175)

                                at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.keepalive(ParallelNioSender.java:395)

                                at
org.apache.catalina.tribes.transport.PooledSender.returnSender(PooledSender.java:48)

                                at
org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessage(PooledParallelSender.java:57)

                                at
org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:65)

                                at
org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelCoordinator.java:83)

                                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                                at
org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor.sendMessage(MessageDispatchInterceptor.java:93)

                                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                                at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMessage(TcpFailureDetector.java:89)

                                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                                at
org.apache.catalina.tribes.group.interceptors.EncryptInterceptor.sendMessage(EncryptInterceptor.java:127)

                                at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(ChannelInterceptorBase.java:89)

                                at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:280)

                                at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:231)

                                at
org.apache.catalina.tribes.tipis.LazyReplicatedMap.publishEntryInfo(LazyReplicatedMap.java:189)

                                at
org.apache.catalina.tribes.tipis.AbstractReplicatedMap.put(AbstractReplicatedMap.java:1177)

                                at
org.apache.catalina.tribes.tipis.AbstractReplicatedMap.put(AbstractReplicatedMap.java:1159)

                                at
org.apache.catalina.session.ManagerBase.add(ManagerBase.java:722)

                                at
org.apache.catalina.session.StandardSession.setId(StandardSession.java:359)

                                at
org.apache.catalina.ha.session.DeltaSession.setId(DeltaSession.java:327)

                                at
org.apache.catalina.ha.session.DeltaSession.setId(DeltaSession.java:345)

                                at
org.apache.catalina.session.ManagerBase.createSession(ManagerBase.java:763)

                                at
org.apache.catalina.connector.Request.doGetSession(Request.java:3104)

                                at
org.apache.catalina.connector.Request.getSessionInternal(Request.java:2757)
                                ... remove a few lines ...
                                at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:625)

                                at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)

                                at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)

                                at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)

                                at
org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:555)

                                at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)

                                at
org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:183)

                                at
org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:329)

                                at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)

                                at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)

                                at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)

                                at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:891)

                                at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1784)

                                at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

                                at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)

                                at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)

                                at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

                                at java.lang.Thread.run(Thread.java:750)

> What was your previous version of Tomcat?
We were always on version 9.  We keep it pretty much up to date with
the latest available.  I am not sure of the sub-version we started at
where it was working.  I'm guessing it was whatever version was the
latest around Jan-2019.

> Did you upgrade all nodes at the same time, or are you upgrading a single node in the cluster?
All are at the same version, we have 4, they all get updated at the same time.

> How did you upgrade (e.g. installer, unzip/untar/etc.)?
untar

Thanks,
Tim

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: StaticMembers within Multiple Clusters

Posted by Christopher Schultz <ch...@christopherschultz.net>.
Tim,

On 1/15/23 12:26, Tim K wrote:
> I hate to bring back my original thread and I am probably not doing
> this correctly, but I've been seeing this message occur on my cluster.
> My tomcat is now at 9.0.70.  Possibly there was a breaking change
> since I first started using the cluster?
> 
> java.lang.NoClassDefFoundError: Could not initialize class
> org.apache.catalina.tribes.ChannelException

There was a new type of message introduced recently, but it should have 
been both forward- and backward-compatible.

Can you post the rest of that stack trace? What was your previous 
version of Tomcat? Did you upgrade all nodes at the same time, or are 
you upgrading a single node in the cluster? How did you upgrade (e.g. 
installer, unzip/untar/etc.)?

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org