You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2017/08/21 16:32:31 UTC
[Bug 61448] New: Cluster StaticMember (McastService:Required
property "tcpListenPort" is missing)
https://bz.apache.org/bugzilla/show_bug.cgi?id=61448
Bug ID: 61448
Summary: Cluster StaticMember (McastService:Required property
"tcpListenPort" is missing)
Product: Tomcat 7
Version: 7.0.70
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Cluster
Assignee: dev@tomcat.apache.org
Reporter: carlospeon@gmail.com
Target Milestone: ---
Hello,
Cluster static members seem to fail since version 7.0.70 (also
reproduced in 8.0.45, and is the same code than tomcat 9):
SEVERE: The required Server component failed to start so Tomcat is
unable to start.
...
Caused by: org.apache.catalina.tribes.ChannelException:
java.lang.IllegalArgumentException: McastService:Required property
"tcpListenPort" is missing.; No faulty members identified.
at
org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:200)
at
org.apache.catalina.tribes.group.ChannelCoordinator.start(ChannelCoordinator.java:100)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162)
at
org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor.start(StaticMembershipInterceptor.java:168)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.start(ChannelInterceptorBase.java:162)
at
org.apache.catalina.tribes.group.GroupChannel.start(GroupChannel.java:431)
at
org.apache.catalina.ha.tcp.SimpleTcpCluster.startInternal(SimpleTcpCluster.java:689)
... 15 more
Caused by: java.lang.IllegalArgumentException: McastService:Required
property "tcpListenPort" is missing.
at
org.apache.catalina.tribes.membership.McastService.hasProperty(McastService.java:360)
at
org.apache.catalina.tribes.membership.McastService.start(McastService.java:379)
at
org.apache.catalina.tribes.group.ChannelCoordinator.internalStart(ChannelCoordinator.java:182)
... 21 more
The reason could be here:
$ diff -u
apache-tomcat-7.0.69-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java.original
---
apache-tomcat-7.0.69-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
2016-04-11 10:02:35.000000000 +0200
+++
apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java.original
2016-06-15 18:45:51.000000000 +0200
@@ -26,6 +26,8 @@
import org.apache.catalina.tribes.MessageListener;
import org.apache.catalina.tribes.UniqueId;
import org.apache.catalina.tribes.membership.McastService;
+import org.apache.catalina.tribes.membership.StaticMember;
+import org.apache.catalina.tribes.transport.ReceiverBase;
import org.apache.catalina.tribes.transport.ReplicationTransmitter;
import org.apache.catalina.tribes.transport.SenderState;
import org.apache.catalina.tribes.transport.nio.NioReceiver;
@@ -141,28 +143,49 @@
//listens to with the local membership settings
if ( Channel.SND_RX_SEQ==(svc & Channel.SND_RX_SEQ) ) {
clusterReceiver.setMessageListener(this);
+ if (clusterReceiver instanceof ReceiverBase) {
+ ((ReceiverBase)clusterReceiver).setChannel(getChannel());
+ }
clusterReceiver.start();
//synchronize, big time FIXME
-
membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
-
getClusterReceiver().getPort(),
-
getClusterReceiver().getSecurePort(),
-
getClusterReceiver().getUdpPort());
+ Member localMember = getChannel().getLocalMember(false);
+ if (localMember instanceof StaticMember) {
+ // static member
+ StaticMember staticMember = (StaticMember)localMember;
+ staticMember.setHost(getClusterReceiver().getHost());
+ staticMember.setPort(getClusterReceiver().getPort());
+
staticMember.setSecurePort(getClusterReceiver().getSecurePort());
+ } else {
+ // multicast member
+
membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
+ getClusterReceiver().getPort(),
+ getClusterReceiver().getSecurePort(),
+ getClusterReceiver().getUdpPort());
+
+ }
valid = true;
}
It seems to me that it's always necessary to initialize
membershipService, maybe something like that (untested):
---
apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java.original
2016-06-15 18:45:51.000000000 +0200
+++
apache-tomcat-7.0.70-src/java/org/apache/catalina/tribes/group/ChannelCoordinator.java
2017-08-18 13:19:53.342672900 +0200
@@ -148,6 +148,10 @@
}
clusterReceiver.start();
//synchronize, big time FIXME
+
membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
+
getClusterReceiver().getPort(),
+
getClusterReceiver().getSecurePort(),
+
getClusterReceiver().getUdpPort());
Member localMember = getChannel().getLocalMember(false);
if (localMember instanceof StaticMember) {
// static member
@@ -155,13 +159,6 @@
staticMember.setHost(getClusterReceiver().getHost());
staticMember.setPort(getClusterReceiver().getPort());
staticMember.setSecurePort(getClusterReceiver().getSecurePort());
- } else {
- // multicast member
-
membershipService.setLocalMemberProperties(getClusterReceiver().getHost(),
- getClusterReceiver().getPort(),
- getClusterReceiver().getSecurePort(),
- getClusterReceiver().getUdpPort());
-
}
valid = true;
}
Regards,
Carlos.
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61448] Cluster StaticMember (McastService:Required property
"tcpListenPort" is missing)
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61448
--- Comment #2 from Keiichi Fujino <kf...@apache.org> ---
If you want to use static cluster membership, you do not need to use
McastService.
So you should set channelStartOptions = "3".
<Cluster className = "org.apache.catalina.ha.tcp.SimpleTcpCluster"
ChannelSendOptions = "6" channelStartOptions = "3">
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61448] Cluster StaticMember (McastService:Required property
"tcpListenPort" is missing)
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61448
--- Comment #1 from Carlos <ca...@gmail.com> ---
How to reproduce:
Set up a cluster with one static member.
#server.xml:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<LocalMember
className="org.apache.catalina.tribes.membership.StaticMember"
port="4000"
host="lab.example.com"
domain="pre-cluster"
uniqueId="{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}"/>
</Interceptor>
</Channel>
</Cluster>
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
[Bug 61448] Cluster StaticMember (McastService:Required property
"tcpListenPort" is missing)
Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=61448
Carlos <ca...@gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |INVALID
Status|NEW |RESOLVED
--- Comment #3 from Carlos <ca...@gmail.com> ---
It works.
Thank you!
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org