geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Colasurdo <davec...@earthlink.net>
Subject Re: Tomcat version in G1.1 for clustering
Date Wed, 19 Apr 2006 19:57:33 GMT


Jeff Genender wrote:
> I would vote for not moving to 5.5.16 for 1.1.  IMHO, its too close.  We
> did some preliminary testing for 5.5.15 and it seems ok...and we will
> know in the next several days if its good to bake in to 1.1.  

Filip,

How significant are the 5.5.15 bugs that you alluded to?  Or is this 
just a general request to use the latest level...

Are the problems unique to clustering?

Do you suspect the coordination error to be a code bug in 5.5.15? 
AFAICT, my setup is identical to 5.5.9..

Would like your input on 5.5.9 -vs- 5.5.15..

Thanks
-Dave-

> 5.5.9 is fine to stick with since its pretty stable and it just works, and in the
> event 5.5.15 causes any discomfort during testing, we are comfortable
> that we can fall back on it.
> 
> IIRC, the 5.5.16 issues had to do with cross context stuff that David
> Jencks and I worked pretty diligently on to fix.  So I would probably be
> apt to push a -1 on 5.5.16 for 1.1.
> 
> Jeff
> 
> Dave Colasurdo wrote:
>> Hmmm..  What level of Tomcat does the community want to include in G1.1?
>>
>> Background...
>>
>> Tomcat 5.5.9 - current working level in G1.0 and G1.1.. Clustering
>> works.. TCK is testing with this level..
>>
>> Tomcat 5.5.10-5.5.14 - clustering is broken
>>
>> Tomcat 5.5.15 - Clustering seems to work somewhat. We've encountered at
>> least one bug. Filip (tomcat clustering developer) mentioned there are
>> still some significant bugs in this level and advises us to move to 5.5.16.
>>
>> Tomcat 5.5.16 - Jeff has mentioned that he and David J had previously
>> discovered some issues that required significant rework that he didn't
>> want to tackle until G1.2..
>>
>> So...  Do we stick with 5.5.9 for G1.1 and move to 5.5.16+ in G1.2?
>>
>> Thanks
>> -Dave-
>>
>>
>>
>> Filip Hanik - Dev Lists wrote:
>>> looks like you are right, there where some other fixes in .16 that
>>> were important, so it may be better to use that one.
>>> seems like you got a coordination error, ie, node1 requested state
>>> from node2, but node2 didn't know about node1, and that caused the
>>> stack trace from below.
>>>
>>> Filip
>>>
>>>
>>> Dave Colasurdo wrote:
>>>> Thanks Filip!!
>>>>
>>>> http://mail-archives.apache.org/mod_mbox/tomcat-users/200512.mbox/%3c63770.72.64.65.166.1135363511.squirrel@www.hanik.com%3e
>>>>
>>>>
>>>> seems to indicate that it is fixed in 5.5.15..
>>>>
>>>> Is it fixed in 5.5.15 or 5.5.16?
>>>>
>>>> Thanks
>>>> -Dave-
>>>>
>>>> Filip Hanik - Dev Lists wrote:
>>>>> Clustering was broken in Tomcat 5.5.10-5.5.15 due to a protocol
>>>>> change, this was corrected in 5.5.16.
>>>>> I would run the tests again that version, and then I can help you
>>>>> out with any problems you run into.
>>>>>
>>>>> Filip
>>>>>
>>>>>
>>>>> Dave Colasurdo wrote:
>>>>>> Jeff,
>>>>>>
>>>>>> Upgraded tomcat, tomcat_ajp and jasper to 5.5.15 and ran the
>>>>>> clustering tests.
>>>>>>
>>>>>> The *good* news...
>>>>>>  Load balancing, sticky session, session replication and session
>>>>>> failover seem to work using the same deployment plan that was
>>>>>> created for G1.1 w/ TC 5.5.9..
>>>>>>
>>>>>> The *bad* news...
>>>>>>
>>>>>> *Problem1*
>>>>>> When testing Sticky session, my browser locks unto a particular
>>>>>> cluster member (e.g. node1) due to the nodeid in the cookie. If I
>>>>>> kill node1, the session fails over into node2 and all my session
>>>>>> data is still present. This is good.
>>>>>> The nodeid in the cookie continues to say node1 (this is also true
>>>>>> w/ TC 5.5.9 w/ and mod-jk)..
>>>>>>
>>>>>> Now, if I restart node1 and wait a minute or so and then hit my
>>>>>> browser,    I am directed to node1 and all my session data is gone.
:(
>>>>>> BTW, an earlier run using TC 5.5.9 also resulted in being directed
>>>>>> back to node1 though the httpsession is retained.  I think this may
>>>>>> be related to problems replicating data whenever nodes are
>>>>>> added..   Which leads me to ...
>>>>>>
>>>>>>
>>>>>> *Problem2*
>>>>>> Whenever a cluster member is added to the cluster, the other nodes
>>>>>> receive the following exception.  This occurs both during the
>>>>>> initial addition of a node and after a stopped node is restarted...
>>>>>>
>>>>>> (Though later when I access an httpsession (via a servlet
>>>>>> request)it does result in session replication between members.)
>>>>>>
>>>>>> 15:30:19,352 INFO  [SimpleTcpCluster] Replication member
>>>>>> added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.14.160
>>>>>> :4001,catalina,192.168.14.160,4001
>>>>>> , alive=0]
>>>>>> 15:30:19,692 ERROR [SimpleTcpCluster] Unable to send message
>>>>>> through cluster sender.
>>>>>> java.io.IOException: Sender not available. Make sure sender
>>>>>> information is available to the ReplicationTransmitter.
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessageDat
>>>>>> a(ReplicationTransmitter.java:857)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessage(Re
>>>>>> plicationTransmitter.java:430)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluste
>>>>>> r.java:1074)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.sendSessions(DeltaMa
>>>>>> nager.java:1690)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.handleGET_ALL_SESSIO
>>>>>> NS(DeltaManager.java:1629)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.messageReceived(Delt
>>>>>> aManager.java:1443)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(
>>>>>> DeltaManager.java:1225)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.ClusterSessionListener.messageRec
>>>>>> eived(ClusterSessionListener.java:85)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive(SimpleTcpClu
>>>>>> ster.java:1160)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceiv
>>>>>> ed(ClusterReceiverBase.java:418)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java
>>>>>> :107)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(Tcp
>>>>>> ReplicationThread.java:131)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicati
>>>>>> onThread.java:69)
>>>>>> 15:30:19,692 ERROR [SimpleTcpCluster] Unable to send message
>>>>>> through cluster sen
>>>>>> der.
>>>>>> java.io.IOException: Sender not available. Make sure sender
>>>>>> information is avail
>>>>>> able to the ReplicationTransmitter.
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessageDat
>>>>>> a(ReplicationTransmitter.java:857)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessage(Re
>>>>>> plicationTransmitter.java:430)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluste
>>>>>> r.java:1074)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.handleGET_ALL_SESSIO
>>>>>> NS(DeltaManager.java:1660)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.messageReceived(Delt
>>>>>> aManager.java:1443)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.DeltaManager.messageDataReceived(
>>>>>> DeltaManager.java:1225)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.session.ClusterSessionListener.messageRec
>>>>>> eived(ClusterSessionListener.java:85)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.SimpleTcpCluster.receive(SimpleTcpClu
>>>>>> ster.java:1160)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.ClusterReceiverBase.messageDataReceiv
>>>>>> ed(ClusterReceiverBase.java:418)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.io.ObjectReader.execute(ObjectReader.java
>>>>>> :107)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.drainChannel(Tcp
>>>>>> ReplicationThread.java:131)
>>>>>>         at
>>>>>> org.apache.catalina.cluster.tcp.TcpReplicationThread.run(TcpReplicati
>>>>>> onThread.java:69)
>>>>>>
>>>>>> *Problem3*
>>>>>> Getting a bunch of exceptions relating to session invalidation
>>>>>>
>>>>>> [snip]
>>>>>> java.lang.IllegalStateException: getId: Session already invalidated
>>>>>> [snip]
>>>>>>
>>>>>> This one may not be new..
>>>>>>
>>>>>>
>>>>>> Thanks
>>>>>> -Dave-
>>>>>>
>>>>>>
>>>>>> Jeff Genender wrote:
>>>>>>> Dave,
>>>>>>>
>>>>>>> Thanks for doing this.
>>>>>>>
>>>>>>> Jeff
>>>>>>>
>>>>>>> Dave Colasurdo wrote:
>>>>>>>> I've validated that the Geronimo clustering example
>>>>>>>> (http://opensource.atlassian.com/confluence/oss/display/GERONIMO/Geronimo+Clustering+Example)
>>>>>>>>
>>>>>>>>  still works for Geronimo 1.1 (with Tomcat 5.5.9).  The application
>>>>>>>> deployment plan (attached to email) required some changes.
>>>>>>>>
>>>>>>>> I'm now rebuilding G1.1 with Tomcat 5.5.15 to determine if
the
>>>>>>>> clustering Gbeans and plans still work..
>>>>>>>>
>>>>>>>> -Dave-
>>>>>>>>
>>>>>>>> Jeff Genender wrote:
>>>>>>>>> IIRC, 5.5.15 went to backward compatibility...
>>>>>>>>>
>>>>>>>>> http://mail-archives.apache.org/mod_mbox/tomcat-users/200512.mbox/%3c63770.72.64.65.166.1135363511.squirrel@www.hanik.com%3e
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Perhaps Filip can fill us in on this.
>>>>>>>>>
>>>>>>>>> If I remember right, the 5.5.9 clustering GBeans will
work on
>>>>>>>>> forward
>>>>>>>>> versions.  So I don't think there is a problem there.
 HEAD has
>>>>>>>>> been set
>>>>>>>>> to 5.5.15 for quite some time.
>>>>>>>>>
>>>>>>>>> Nevertheless, it doesn't hurt to try em out ;-)
>>>>>>>>>
>>>>>>>>> Jeff
>>>>>>>>>
>>>>>>>>> Dave Colasurdo wrote:
>>>>>>>>>> Jeff (et al.),
>>>>>>>>>>
>>>>>>>>>> Will G1.1 definitely be upgraded to Tomcat 5.5.15?
>>>>>>>>>>
>>>>>>>>>> IIRC, the clustering deployment plans were quite
different for
>>>>>>>>>> 5.5.9
>>>>>>>>>> -vs- 5.5.12.  If we upgrade to 5.5.15, we will likely
need a
>>>>>>>>>> new plan
>>>>>>>>>> that accounts for both the webcontainer upgrade as
well as the
>>>>>>>>>> new G1.1
>>>>>>>>>>  plan format..
>>>>>>>>>>
>>>>>>>>>> Thanks
>>>>>>>>>> -Dave-
>>>>>>>>>>
>>>>>>>>>> Jeff Genender wrote:
>>>>>>>>>>> Thanks Rainer.  But I think 5.5.15 will be the
one for 1.1.  But
>>>>>>>>>>> possibly 5.5.17 for 1.2 ;-)
>>>>>>>>>>>
>>>>>>>>>>> Jeff
>>>>>>>>>>>
>>>>>>>>>>> Rainer Jung wrote:
>>>>>>>>>>>> Just for your information: 5.5.16 was released
a couple of
>>>>>>>>>>>> weeks ago,
>>>>>>>>>>>> but has some problems with de delivered packaginf
of examples
>>>>>>>>>>>> app
>>>>>>>>>>>> under
>>>>>>>>>>>> windows.
>>>>>>>>>>>>
>>>>>>>>>>>> 5.5.17 is expected to be cut on friday and
voted stable
>>>>>>>>>>>> eventually 1-2
>>>>>>>>>>>> weeks later.
>>>>>>>>>>>>
>>>>>>>>>>>> Jeff Genender wrote:
>>>>>>>>>>>>> Yep...need to update the plan.  Its updated
in trunk.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Dave Colasurdo wrote:
>>>>>>>>>>>>>> It appears that G1.1 is still using
Tomcat 5.5.9
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://svn.apache.org/repos/asf/geronimo/branches/1.1/etc/project.properties
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Wasn't a tomcat upgrade to 5.5.15
in plan for G1.1?? 
>>>>>>>>>>>>>> Perhaps I am
>>>>>>>>>>>>>> confused with the plans for trunk..
??
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>> -Dave-
>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>
>>>>>>>>
>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>> <!--Copyright 2004-2005 The Apache Software Foundation
>>>>>>>>
>>>>>>>>     Licensed under the Apache License, Version 2.0 (the "License");
>>>>>>>>     you may not use this file except in compliance with the
License.
>>>>>>>>     You may obtain a copy of the License at
>>>>>>>>
>>>>>>>>        http://www.apache.org/licenses/LICENSE-2.0
>>>>>>>>
>>>>>>>>     Unless required by applicable law or agreed to in writing,
>>>>>>>> software
>>>>>>>>     distributed under the License is distributed on an "AS
IS"
>>>>>>>> BASIS,
>>>>>>>>     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express
>>>>>>>> or implied.
>>>>>>>>     See the License for the specific language governing
>>>>>>>> permissions and
>>>>>>>>     limitations under the License.-->
>>>>>>>> <!--$Rev: 381704 $ $Date: 2006-02-28 11:55:41 -0500 (Tue,
28 Feb
>>>>>>>> 2006) $-->
>>>>>>>> <web-app
>>>>>>>> xmlns="http://geronimo.apache.org/xml/ns/j2ee/web/tomcat-1.1">
>>>>>>>>   <dep:environment
>>>>>>>> xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
>>>>>>>>     <dep:configId>
>>>>>>>>       <dep:groupId>geronimo</dep:groupId>
>>>>>>>>      
>>>>>>>> <dep:artifactId>servlets-examples-tomcat-cluster</dep:artifactId>
>>>>>>>>       <dep:version>1.1-SNAPSHOT</dep:version>
>>>>>>>>       <dep:type>car</dep:type>
>>>>>>>>     </dep:configId>
>>>>>>>>     <dep:dependencies/>
>>>>>>>>     <dep:hidden-classes/>
>>>>>>>>     <dep:non-overridable-classes/>
>>>>>>>>   </dep:environment>
>>>>>>>>   <context-root>/servlets-examples-cluster</context-root>
>>>>>>>>   <context-priority-classloader>false</context-priority-classloader>
>>>>>>>>  
>>>>>>>> <security-realm-name>geronimo-properties-realm</security-realm-name>
>>>>>>>>   <security>
>>>>>>>>     <default-principal>
>>>>>>>>       <principal name="anonymous"
>>>>>>>> class="org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"/>
>>>>>>>>
>>>>>>>>     </default-principal>
>>>>>>>>     <role-mappings>
>>>>>>>>       <role role-name="tomcat">
>>>>>>>>         <principal name="admin"
>>>>>>>> class="org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"/>
>>>>>>>>
>>>>>>>>       </role>
>>>>>>>>     </role-mappings>
>>>>>>>>   </security>
>>>>>>>>
>>>>>>>>     <cluster>TomcatCluster</cluster>
>>>>>>>>
>>>>>>>>     <!-- Cluster -->
>>>>>>>>     <gbean name="TomcatCluster"
>>>>>>>> class="org.apache.geronimo.tomcat.cluster.CatalinaClusterGBean">
>>>>>>>>         <attribute
>>>>>>>> name="className">org.apache.catalina.cluster.tcp.SimpleTcpCluster</attribute>
>>>>>>>>
>>>>>>>>         <attribute name="initParams">
>>>>>>>>            
>>>>>>>> managerClassName=org.apache.catalina.cluster.session.DeltaManager
>>>>>>>>             expireSessionsOnShutdown=false
>>>>>>>>             useDirtyFlag=false
>>>>>>>>             notifyListenersOnReplication=true
>>>>>>>>         </attribute>
>>>>>>>>
>>>>>>>>         <reference name="Membership"> 
>>>>>>>> <name>TomcatMembership</name> </reference>
        <reference
>>>>>>>> name="Receiver">  <name>TomcatReceiver</name>
>>>>>>>> </reference>         <reference name="Sender">

>>>>>>>> <name>TomcatSender</name> </reference>
        <reference
>>>>>>>> name="TomcatValveChain">  <name>ReplicationValve</name>
>>>>>>>> </reference>         <!--
>>>>>>>>         <reference name="ClusterDeployer">
>>>>>>>> <name>FarmWarDeployer</name> </reference>
        -->
>>>>>>>>     </gbean>
>>>>>>>>
>>>>>>>>     <!-- Membership -->
>>>>>>>>
>>>>>>>>     <gbean name="TomcatMembership"
>>>>>>>> class="org.apache.geronimo.tomcat.cluster.MembershipServiceGBean">
>>>>>>>>         <attribute
>>>>>>>> name="className">org.apache.catalina.cluster.mcast.McastService</attribute>
>>>>>>>>
>>>>>>>>         <attribute name="initParams">
>>>>>>>>             mcastAddr=228.0.0.4
>>>>>>>>             mcastBindAddress=xx.yy.zz.aa             mcastPort=45564
>>>>>>>>             mcastFrequency=500
>>>>>>>>             mcastDropTime=3000
>>>>>>>>         </attribute>
>>>>>>>>     </gbean>
>>>>>>>>     <!-- Receiver -->
>>>>>>>>
>>>>>>>>     <gbean name="TomcatReceiver"
>>>>>>>>         class="org.apache.geronimo.tomcat.cluster.ReceiverGBean">
>>>>>>>>         <attribute
>>>>>>>> name="className">org.apache.catalina.cluster.tcp.ReplicationListener</attribute>
>>>>>>>>
>>>>>>>>         <attribute name="initParams">
>>>>>>>>             tcpListenAddress=xx.yy.zz.aa            
>>>>>>>> tcpListenPort=4001
>>>>>>>>             tcpSelectorTimeout=100
>>>>>>>>             tcpThreadCount=6
>>>>>>>>         </attribute>
>>>>>>>>     </gbean>     <!-- Sender -->
>>>>>>>>
>>>>>>>>     <gbean name="TomcatSender"
>>>>>>>>         class="org.apache.geronimo.tomcat.cluster.SenderGBean">
>>>>>>>>         <attribute
>>>>>>>> name="className">org.apache.catalina.cluster.tcp.ReplicationTransmitter</attribute>
>>>>>>>>
>>>>>>>>         <attribute name="initParams">
>>>>>>>>             replicationMode=pooled
>>>>>>>>             ackTimeout=15000
>>>>>>>>         </attribute>
>>>>>>>>     </gbean>      <!-- Valves -->
>>>>>>>>     <gbean name="ReplicationValve"
>>>>>>>>         class="org.apache.geronimo.tomcat.ValveGBean">
>>>>>>>>         <attribute
>>>>>>>> name="className">org.apache.catalina.cluster.tcp.ReplicationValve</attribute>
>>>>>>>>
>>>>>>>>         <attribute name="initParams">
>>>>>>>>            
>>>>>>>> filter=.*\.gif;.*\.js;.*\.css;.*\.png;.*\.jpeg;.*\.jpg;.*\.htm;.*\.html;.*\.txt;
>>>>>>>>
>>>>>>>>         </attribute>
>>>>>>>>     </gbean>
>>>>>>>>     <!-- Deployer     <gbean name="FarmWarDeployer"
>>>>>>>> class="org.apache.geronimo.tomcat.cluster.FarmWarDeployerGBean">
>>>>>>>>         <attribute name="tempDir">var/catalina/war-temp</attribute>
>>>>>>>>         <attribute
>>>>>>>> name="deployDir">var/catalina/war-deploy</attribute>
>>>>>>>>         <attribute
>>>>>>>> name="watchDir">var/catalina/war-listen</attribute>
>>>>>>>>         <attribute name="watchEnabled">true</attribute>
>>>>>>>>         <attribute name="processDeployFrequency">10</attribute>
>>>>>>>>         <reference name="ServerInfo">
>>>>>>>>             <moduleType>J2EEModule</moduleType>
>>>>>>>>             <module>geronimo/j2ee-system/1.1-SNAPSHOT/car</module>
>>>>>>>>             <name>ServerInfo</name>
>>>>>>>>         </reference>
>>>>>>>>     </gbean>
>>>>>>>>     -->
>>>>>>>> </web-app>
>>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>
>>>
> 
> 

Mime
View raw message