On 16/07/2010 10:19, Mark Thomas wrote:
> On 16/07/2010 06:49, Matt Peterson wrote:
>> While load testing our clustered Tomcats, we are seeing the following
>> stack
>> trace in our catalina.out occasionally, but not regularly:
>>
>>
>>
>> Jul 16, 2010 3:34:49 PM org.apache.catalina.ha.session.DeltaManager
>> messageReceived
>>
>> SEVERE: Manager [localhost#/urs]: Unable to receive message through TCP
>> channel
>>
>> java.lang.IllegalStateException: removeAttribute: Session already
>> invalidated
> 
> <snip/>
> 
>> Under what conditions would this occur? Could it be that a session
>> diff is
>> being transmitted, but the session it relates to has been invalidated
>> by the
>> time the diff is processed (via a user logout for example)? Or could
>> it be
>> that a timeout has been reached???
> 
> Someone at $work has been doing a load test with tc Server (which has
> identical code to Tomcat in this area) and seen the same issue. I know
> it isn't due to timeout since the sessions are only a few seconds old
> when it happens. My current guess is that the messages are not being
> processed in the same order as they are sent. I need to dig into this
> more to figure out if this is a configuration issue or a bug.
> 
> I did wonder if switching to channel send options 6 would fix it. I'll
> get them to try that and see.

Matt,

Testing shows that it is caused by using async session replication. If
you use synchronous replication that ensures messages are processed on
the receiving nodes in the order they are sent. Asynchronous replication
in conjunction with the fact the the receiving node uses a thread pool
to process messages means that it is possible for messages to be
processed out of sequence. If a session invalidate is processed before
and update then you'll see this error.

Mark



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

Reply via email to