I'm using JBoss AS 7.1.1.Final with JDK 1.6.0_45 and Ubuntu OS 64bit 13.04.

When i tried switch JGroups to version 2.11.1.Final and start again.

On node1 it start OK, no problem, but on node2 (node's started later) i met exception.

I don't know and i can't find what class is missing here. Why did we change version of JGroups into an older version?

Exception:
SEVERE [org.jgroups.blocks.RequestCorrelator] (OOB-40,null) failed unmarshalling buffer into return value: java.lang.ClassNotFoundException: org.exoplatform.services.rpc.RPCException from [Module "org.jgroups:gatein" from local module loader @55dec1dd (roots: /home/tuyennt/projects/gatein/gatein3/packaging/jboss-as7/pkg/target/node2/modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
at java.lang.Class.forName0(Native Method) [rt.jar:1.6.0_45]
at java.lang.Class.forName(Class.java:249) [rt.jar:1.6.0_45]
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:602) [rt.jar:1.6.0_45]
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1589) [rt.jar:1.6.0_45]
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1494) [rt.jar:1.6.0_45]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1748) [rt.jar:1.6.0_45]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1327) [rt.jar:1.6.0_45]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) [rt.jar:1.6.0_45]
at org.jgroups.util.Util.objectFromByteBuffer(Util.java:398)
at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:500)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:365)
at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:771)
at org.jgroups.JChannel.up(JChannel.java:1465)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:954)
at org.jgroups.protocols.pbcast.FLUSH.up(FLUSH.java:430)
at org.jgroups.protocols.pbcast.STATE_TRANSFER.up(STATE_TRANSFER.java:151)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:190)
at org.jgroups.protocols.FC.up(FC.java:483)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:888)
at org.jgroups.protocols.VIEW_SYNC.up(VIEW_SYNC.java:171)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:234)
at org.jgroups.protocols.UNICAST.handleDataReceived(UNICAST.java:577)
at org.jgroups.protocols.UNICAST.up(UNICAST.java:295)
at org.jgroups.protocols.pbcast.NAKACK.up(NAKACK.java:709)
at org.jgroups.protocols.BARRIER.up(BARRIER.java:120)
at org.jgroups.protocols.VERIFY_SUSPECT.up(VERIFY_SUSPECT.java:132)
at org.jgroups.protocols.FD.up(FD.java:266)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:275)
at org.jgroups.protocols.MERGE2.up(MERGE2.java:210)
at org.jgroups.protocols.Discovery.up(Discovery.java:292)
at org.jgroups.protocols.PING.up(PING.java:67)
at org.jgroups.stack.Protocol.up(Protocol.java:406)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1093)
at org.jgroups.protocols.TP.access$100(TP.java:56)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1633)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1615)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]




On Tue, Aug 6, 2013 at 10:30 PM, Marek Posolda <mposolda@redhat.com> wrote:
yes, 2 virtual IP addresses are ok. And if you use same multicast address (-u) argument for startup of both nodes, it should be sufficient to have cluster working.

Are you using JBoss AS 7.1.1.Final or some other version? And which environment/OS do you have? During googling I've found just this http://jgroups.1086181.n5.nabble.com/Re-jgroups-dev-org-jgroups-protocols-UDP-failed-sending-message-to-null-tc943.html , which is actually very same error which you have, but not sure if it helps...

Thing is that we changed JGroups version between 3.5.0 and 3.6.0. GateIn 3.5.0 is using JGroups-2.11.1.Final when GateIn 3.6 and newer is using 2.6.21.Final. So could you try to replace file GATEIN_36_HOME/modules/org/jgroups/gatein/jgroups-2.6.21.Final.jar with the jgrous-2.11.1.Final.jar? You will need to do it on both nodes. And you will also need to update GATEIN_36_HOME/modules/org/jgroups/gatein/module.xml with correct name of JGroups JAR file.

Please let me know if it helps.

Thanks,
Marek



On 6.8.2013 12:41, Tuyen The Nguyen wrote:
Hi,

I have tried to use IP 239.23.42.2 as multicast address, but i still meet same exception:

Can i use 2 virtual IP on my machine to start 2 node as cluster? My virtual IP is 192.168.56.1 and 192.168.57.1, if i use these IP, which multicast IP should i use to run? These ip are worked in gatein 3.5.x branch, but error in 3.6.x and master branch.

Exception:
ERROR [org.jgroups.protocols.UDP] (Timer-1,192.168.4.122:56200) failed sending message to null (83 bytes): java.lang.Exception: dest=/239.23.42.2:45588 (86 bytes)
at org.jgroups.protocols.UDP._send(UDP.java:374)
at org.jgroups.protocols.UDP.sendToAllMembers(UDP.java:302)
at org.jgroups.protocols.TP.doSend(TP.java:1478)
at org.jgroups.protocols.TP.send(TP.java:1468)
at org.jgroups.protocols.TP.down(TP.java:1186)
at org.jgroups.protocols.TP$ProtocolAdapter.down(TP.java:2308)
at org.jgroups.protocols.PING.sendMcastDiscoveryRequest(PING.java:278)
at org.jgroups.protocols.PING.sendGetMembersRequest(PING.java:259)
at org.jgroups.protocols.Discovery$PingSenderTask$1.run(Discovery.java:407)
at org.jgroups.util.TimeScheduler$RobustRunnable.run(TimeScheduler.java:196)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [rt.jar:1.6.0_45]
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [rt.jar:1.6.0_45]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [rt.jar:1.6.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [rt.jar:1.6.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [rt.jar:1.6.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
Caused by: java.io.IOException: Invalid argument
at java.net.PlainDatagramSocketImpl.send(Native Method) [rt.jar:1.6.0_45]
at java.net.DatagramSocket.send(DatagramSocket.java:625) [rt.jar:1.6.0_45]
at org.jgroups.protocols.UDP._send(UDP.java:358)
... 18 more






On Tue, Aug 6, 2013 at 3:18 PM, Marek Posolda <mposolda@redhat.com> wrote:
Hi,


On 6.8.2013 06:22, Tuyen The Nguyen wrote:
Hi all, I'm working on issue GTNPORTAL-2258.

I configure Gatein cluster mode follow by document of gatein (https://docs.jboss.org/author/display/GTNPORTAL35/Clustering+configuration).

When i start gatein with command: 
    $ ./bin/standalone.sh --server-config=standalone-ha.xml -Djboss.node.name=node1 -b 192.168.210.101 -u 2.439.232.2 -Djboss.bind.address.management=192.168.210.101

I can't understand param "-u 239.23.42.2", i see that's multicast IP, but how can i get this ip in my network.
GateIn/JBoss clustering is using JGroups library for cluster communication, which is by default using UDP protocol with multicast. So you just need to have support for multicast in your OS and network. See for example http://en.wikipedia.org/wiki/Multicast_address for more info. For parameter "-u" you need to use multicast IP address (something from 224.0.0.0 to 239.255.255.255). I am seeing that you have invalid address 2.439.232.2 in your first command. Address 239.23.42.2 should be ok. Could you double-check and test again?


When i remove this param and use default of jbossAS and it work with gatein 3.5.x But in 3.6.x and master branch, i always meet exception.
I recommend to always specify "-u" address and choose some 'random' address from the range when you test clustering. When you use default 230.0.0.4, you have quite big chance that your cluster will communicate with someone else on same network who is also testing clustering. And this is usually something, which you don't want and second person as well :-)

Marek

Is there anybody know how to fix this bug?

Exception:
 
ERROR [org.jgroups.protocols.UDP] (Timer-2,127.0.0.1:56200) failed sending message to null (66 bytes): java.lang.Exception: dest=/230.0.0.4:45588 (69 bytes)
at org.jgroups.protocols.UDP._send(UDP.java:374)
at org.jgroups.protocols.UDP.sendToAllMembers(UDP.java:302)
at org.jgroups.protocols.TP.doSend(TP.java:1478)
at org.jgroups.protocols.TP.send(TP.java:1468)
at org.jgroups.protocols.TP.down(TP.java:1186)
at org.jgroups.protocols.TP$ProtocolAdapter.down(TP.java:2308)
at org.jgroups.protocols.PING.sendMcastDiscoveryRequest(PING.java:278)
at org.jgroups.protocols.PING.sendGetMembersRequest(PING.java:259)
at org.jgroups.protocols.Discovery$PingSenderTask$1.run(Discovery.java:407)
at org.jgroups.util.TimeScheduler$RobustRunnable.run(TimeScheduler.java:196)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [rt.jar:1.6.0_45]
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [rt.jar:1.6.0_45]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [rt.jar:1.6.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [rt.jar:1.6.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [rt.jar:1.6.0_45]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_45]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]
Caused by: java.io.IOException: Invalid argument
at java.net.PlainDatagramSocketImpl.send(Native Method) [rt.jar:1.6.0_45]
at java.net.DatagramSocket.send(DatagramSocket.java:625) [rt.jar:1.6.0_45]
at org.jgroups.protocols.UDP._send(UDP.java:358)
... 18 more
 


_______________________________________________
gatein-dev mailing list
gatein-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/gatein-dev