-
Bug
-
Resolution: Done
-
Major
-
None
-
None
When we have 2 partitions {A,B,C} and {X,Y,Z} and they merge, but one of the members (e.g. Z) is excluded from the merge (e.g. because it is involved in a different merge already), we create the following MergeView:
MergeView: view={A,B,C,X,Y} subgroups={A,B,C} {X,Y,Z}
Because the members of the subgroups refer to the merge view via index, the index for Z is -1, and thus - when unmarshalled - Z points to a null creator, which triggers the following stack trace:
00631037-49819: failed handling incoming message java.lang.IllegalArgumentException: creator cannot be null at org.jgroups.ViewId.<init>(ViewId.java:32) at org.jgroups.ViewId.<init>(ViewId.java:42) at org.jgroups.View.create(View.java:90) at org.jgroups.MergeView.readFrom(MergeView.java:119) at org.jgroups.protocols.pbcast.GMS$GmsHeader.readFrom(GMS.java:1285) at org.jgroups.Message.readHeader(Message.java:889) at org.jgroups.Message.readFrom(Message.java:803) at org.jgroups.protocols.TP.readMessageBatch(TP.java:1796) at org.jgroups.protocols.TP.receive(TP.java:1463) at org.jgroups.protocols.UDP$PacketReceiver.run(UDP.java:683) at java.lang.Thread.run(Unknown Source)
SOLUTION:
- When marshalling a MergeView, and a subgroup member has no corresponding member in members, then send the address instead of the index
- OR: remove all members from subgroups which are not in members
- is related to
-
JGRP-1391 Compress MergeViews
- Resolved