]
Scott Stark commented on AS7-1260:
----------------------------------
Even with the
commit
to address this, there still was a problem with the ProtocolStackAdd.Protocol.getField
method due to the check for whether a super class implemented Protocol being reversed.
This getField impl allowed me to setup a stack with bind_addr set across the protocols.
private static Field getField(Class<?> targetClass, String property) {
Field field = null;
try {
field = targetClass.getDeclaredField(property);
} catch (NoSuchFieldException e) {
Class<?> superClass = targetClass.getSuperclass();
field = (superClass != null) &&
(org.jgroups.stack.Protocol.class.isAssignableFrom(superClass)) ? getField(superClass,
property) : null;
}
return field;
}
JGroups subsystem fails to setup some protocol stacks.
------------------------------------------------------
Key: AS7-1260
URL:
https://issues.jboss.org/browse/AS7-1260
Project: Application Server 7
Issue Type: Bug
Components: Clustering
Affects Versions: 7.0.0.Final
Reporter: Trustin Lee
Assignee: Paul Ferraro
Priority: Critical
After upgrading from AS 7.0.0.CR1 to AS 7.0.0.Final, I started to see an exception raised
by org.jboss.as.clustering.jgroups.JChannelFactory:
{code}
22:11:54,040 ERROR [stderr] (MSC service thread 1-1) java.lang.IllegalArgumentException:
org.jgroups.ChannelException: unable to setup the protocol stack
22:11:54,040 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.infinispan.ChannelProvider.getJGroupsChannel(ChannelProvider.java:71)
22:11:54,041 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.buildChannel(JGroupsTransport.java:273)
22:11:54,041 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannel(JGroupsTransport.java:226)
22:11:54,041 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.initChannelAndRPCDispatcher(JGroupsTransport.java:254)
22:11:54,041 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.remoting.transport.jgroups.JGroupsTransport.start(JGroupsTransport.java:148)
22:11:54,041 ERROR [stderr] (MSC service thread 1-1) at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
22:11:54,041 ERROR [stderr] (MSC service thread 1-1) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
22:11:54,042 ERROR [stderr] (MSC service thread 1-1) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
22:11:54,042 ERROR [stderr] (MSC service thread 1-1) at
java.lang.reflect.Method.invoke(Method.java:597)
22:11:54,042 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)
22:11:54,042 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:918)
22:11:54,042 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:711)
22:11:54,042 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:611)
22:11:54,043 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.factories.GlobalComponentRegistry.start(GlobalComponentRegistry.java:176)
22:11:54,043 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:171)
22:11:54,043 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.CacheImpl.start(CacheImpl.java:366)
22:11:54,043 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:559)
22:11:54,043 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:455)
22:11:54,043 ERROR [stderr] (MSC service thread 1-1) at
org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:479)
22:11:54,044 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:84)
22:11:54,044 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.infinispan.DefaultEmbeddedCacheManager.getCache(DefaultEmbeddedCacheManager.java:73)
22:11:54,044 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.infinispan.subsystem.CacheService.start(CacheService.java:73)
22:11:54,044 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1765)
22:11:54,044 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.msc.service.ServiceControllerImpl$ClearTCCLTask.run(ServiceControllerImpl.java:2291)
22:11:54,044 ERROR [stderr] (MSC service thread 1-1) at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
22:11:54,045 ERROR [stderr] (MSC service thread 1-1) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
22:11:54,045 ERROR [stderr] (MSC service thread 1-1) at
java.lang.Thread.run(Thread.java:680)
22:11:54,045 ERROR [stderr] (MSC service thread 1-1) Caused by:
org.jgroups.ChannelException: unable to setup the protocol stack
22:11:54,045 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.JChannel.init(JChannel.java:1728)
22:11:54,045 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.JChannel.<init>(JChannel.java:249)
22:11:54,045 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.jgroups.JChannelFactory$JChannel.<init>(JChannelFactory.java:269)
22:11:54,046 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.jgroups.JChannelFactory.createChannel(JChannelFactory.java:69)
22:11:54,046 ERROR [stderr] (MSC service thread 1-1) at
org.jboss.as.clustering.infinispan.ChannelProvider.getJGroupsChannel(ChannelProvider.java:67)
22:11:54,046 ERROR [stderr] (MSC service thread 1-1) ... 26 more
22:11:54,046 ERROR [stderr] (MSC service thread 1-1) Caused by:
java.lang.IllegalArgumentException: the following properties in PING are not recognized:
{bind_addr=192.168.0.196}
22:11:54,046 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.stack.Configurator.createLayer(Configurator.java:460)
22:11:54,047 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.stack.Configurator.createProtocols(Configurator.java:393)
22:11:54,047 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:88)
22:11:54,047 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:55)
22:11:54,047 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:534)
22:11:54,047 ERROR [stderr] (MSC service thread 1-1) at
org.jgroups.JChannel.init(JChannel.java:1725)
22:11:54,047 ERROR [stderr] (MSC service thread 1-1) ... 30 more
{code}
(Actually, the exception was being swallowed by Infinispan, so I had to modify the source
code in Infinispan.)
Reverting back only the JGroups subsystem to 7.0.0.CR1 fixes the problem for UDP stack.
TCP stack still fails when configuring MPING:
{code}
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) Caused by:
java.lang.IllegalArgumentException: the following properties in MPING are not recognized:
{start_port=0}
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) at
org.jgroups.stack.Configurator.createLayer(Configurator.java:460)
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) at
org.jgroups.stack.Configurator.createProtocols(Configurator.java:393)
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) at
org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:88)
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) at
org.jgroups.stack.Configurator.setupProtocolStack(Configurator.java:55)
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) at
org.jgroups.stack.ProtocolStack.setup(ProtocolStack.java:534)
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) at
org.jgroups.JChannel.init(JChannel.java:1725)
23:40:07,623 ERROR [stderr] (MSC service thread 1-8) ... 30 more
{code}
The offending subsystem configuration is:
{code}
<subsystem xmlns="urn:jboss:domain:jgroups:1.0"
default-stack="udp">
<stack name="udp">
<transport type="UDP"
socket-binding="jgroups-udp"
default-executor="jgroups"
oob-executor="jgroups-oob"
timer-executor="jgroups-timer"/>
<protocol type="PING"/>
<protocol type="MERGE2"/>
<protocol type="FD_SOCK"/>
<protocol type="FD"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="BARRIER"/>
<protocol type="pbcast.NAKACK"/>
<protocol type="UNICAST"/>
<protocol type="pbcast.STABLE"/>
<protocol type="VIEW_SYNC"/>
<protocol type="pbcast.GMS"/>
<protocol type="UFC"/>
<protocol type="MFC"/>
<protocol type="FRAG2"/>
<protocol type="pbcast.STREAMING_STATE_TRANSFER"/>
<protocol type="pbcast.FLUSH"/>
</stack>
<stack name="tcp">
<transport type="TCP"
socket-binding="jgroups-tcp"
default-executor="jgroups"
oob-executor="jgroups-oob"
timer-executor="jgroups-timer"/>
<protocol type="MPING"
socket-binding="jgroups-mping"/>
<protocol type="MERGE2"/>
<protocol type="FD_SOCK"/>
<protocol type="FD"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="BARRIER"/>
<protocol type="pbcast.NAKACK"/>
<protocol type="UNICAST"/>
<protocol type="pbcast.STABLE"/>
<protocol type="VIEW_SYNC"/>
<protocol type="pbcast.GMS"/>
<protocol type="UFC"/>
<protocol type="MFC"/>
<protocol type="FRAG2"/>
<protocol type="pbcast.STREAMING_STATE_TRANSFER"/>
<protocol type="pbcast.FLUSH"/>
</stack>
</subsystem>
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: