Fixed at r1675020. 2015-04-20 16:18 GMT+09:00 Keiichi Fujino <kfuj...@apache.org>:
> This NPE has been caused by that apply the diff data to a > ReplicatedMapEntry that has not set a MapOwner. > Usually, ReplicatedMapEntry always has to have the MapOwner. > I think this is probably a bug. > Please open Bugzilla entry. > I will scrutinize the code. > > 2015-04-20 15:04 GMT+09:00 Keiichi Fujino <kfuj...@apache.org>: > >> Hi >> >> Are there other error or exception in your log? >> >> Please show us your cluster configuration in your server.xml. >> e.g. >> - What is mapSendOptions? >> - Which Interceptor do you use? >> >> >> >> 2015-04-15 3:55 GMT+09:00 Théo Chamley <theo...@mley.fr>: >> >>> Hello, >>> >>> I have a working Tomcat 8.0.15 cluster with 3 members with the >>> BackupManager as session manager. >>> The session replication is mostly working except in a few cases. In >>> those cases, I get the following error: >>> >>> 09-Apr-2015 12:16:58.369 SEVERE [Tribes-Task-Receiver-6] >>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived >>> Unable to apply diff to key:3B286B4C7CA060163A00988969D21923 >>> java.lang.NullPointerException >>> at >>> org.apache.catalina.ha.session.DeltaSession.applyDiff(DeltaSession.java:164) >>> at >>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:664) >>> at >>> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:293) >>> at >>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:81) >>> at >>> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:112) >>> at >>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:81) >>> at >>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:81) >>> at >>> org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.messageReceived(ThroughputInterceptor.java:89) >>> at >>> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:81) >>> at >>> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:260) >>> at >>> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:240) >>> at >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:206) >>> at >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:97) >>> at >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>> at java.lang.Thread.run(Thread.java:745) >>> >>> >>> I was able to replicate the problem with a scenario in the application, >>> but I was not able to understand the underlying problem. >>> This happens when the user is making a very specific request and this >>> request arrives on a Tomcat where his session is not stored, forcing the >>> Tomcat to fetch the session elsewhere. >>> >>> The 3 tomcats are on the same network with a very low network latency. >>> >>> Does anybody has some advice on how to debug this problem? >>> >>> For now, I got around it with sticky sessions on mod_jk, but I find this >>> very unsatisfactory. >>> >>> Thank you in advance for your help, >>> >>> //Théo >>> >>> -- >>> Keiichi.Fujino >>> >> > > > -- > Keiichi.Fujino > -- Keiichi.Fujino