Details
-
Bug
-
Resolution: Done
-
Major
-
2.4.1
-
None
Description
When I simulate a cluster failure and restart using a Multiplexer channel, the merge process fails in JGroups with an UnsupportedOperationException in Multiplexer.mergeServiceState(). The stack trace is as follows.
ERROR [org.jgroups.mux.Multiplexer] problems handling merge view java.lang.UnsupportedOperationException
at org.jgroups.util.UnmodifiableVector.retainAll(UnmodifiableVector.java:158)
at org.jgroups.mux.Multiplexer.mergeServiceState(Multiplexer.java:867)
at org.jgroups.mux.Multiplexer.handleMergeView(Multiplexer.java:812)
at org.jgroups.mux.Multiplexer.access$200(Multiplexer.java:21)
at org.jgroups.mux.Multiplexer$1.run(Multiplexer.java:287)
I looked at the relevant JGroups code and it appears that JGroups uses a MergeView object that always returns an UnmodifiableVector when MergeView.getMembers() is invoked. The Multiplexer.mergeServiceState() method invokes MergeView.getMembers() followed by UnmodifiableVector.retainAll(), causing the exception to occur.
This problem can be replicated by executing DRMTestCase in JBossAS 5.0. The error occurs in DRMTestCase.testIsMasterReplica().
Attachments
Issue Links
- blocks
-
JBAS-2470 Test multiple partitions and subsequent merges using Gossip Router
- Closed