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  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 :

> 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 :
>
>> 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 :
>>
>>> 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 :

> 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 :
>
>> 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-19 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 :

> 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