Re: Cluster - Session replication error: Unable to apply diff

2015-04-23 Thread Théo Chamley

 On 22 Apr 2015, at 02:32, Keiichi Fujino kfuj...@apache.org wrote:
 
 Fixed at r1675020.
 
 --
 Keiichi.Fujino

Hello,

Sorry for not having replied earlier. Thank you for your investigation and your 
bug correction.
I will try to apply my test case to the trunk in the next few days, I’ll let 
you know if it does solve my problem.

Thank you again,

Théo



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Cluster - Session replication error: Unable to apply diff

2015-04-21 Thread Keiichi Fujino
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


Re: Cluster - Session replication error: Unable to apply diff

2015-04-20 Thread Keiichi Fujino
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


Re: Cluster - Session replication error: Unable to apply diff

2015-04-20 Thread Keiichi Fujino
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



Cluster - Session replication error: Unable to apply diff

2015-04-14 Thread Théo Chamley
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


signature.asc
Description: Message signed with OpenPGP using GPGMail