]
Bela Ban commented on JGRP-2159:
--------------------------------
I also revamped the view ack collection mechanism a bit: {{GMS.castViewChange()}} now
broadcasts the view and sends JOIN responses to joining members if needed, then blocks for
all acks from existing members (minus self) and joining members. For merge views, only
acks from this side of the partition are waited for.
Delta view cannot be installed
------------------------------
Key: JGRP-2159
URL:
https://issues.jboss.org/browse/JGRP-2159
Project: JGroups
Issue Type: Bug
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 4.1, 4.0.1
Attachments: discarded_delta_view.log
A DeltaView cannot be installed because the ref view-id is not the current view-id.
Looking at the view sequence for members J, K and L:
{noformat}
19:22:54,278 DEBUG (testng-Test:[]) [GMS] J: installing view [J|0] (1) [J]
19:22:56,519 DEBUG (testng-Test:[]) [GMS] K: installing view [J|1] (2) [J, K]
19:22:56,572 DEBUG (jgroups-7,J:[]) [GMS] J: installing view [J|1] (2) [J, K]
19:22:56,590 DEBUG (jgroups-5,K:[]) [GMS] K: installing view [J|2] (2) [J, K]
19:22:58,585 DEBUG (jgroups-5,J:[]) [GMS] J: installing view [J|3] (3) [J, K, L]
19:23:00,603 DEBUG (testng-Test:[]) [GMS] L: installing view [J|3] (3) [J, K, L]
{noformat}
K cannot install DeltaView J|3 because it has view J|2 but the DeltaView has ref view-id
J|1.
The reason is that J|2 was apparently installed *only* at K (but not at coordinator J1!),
despite it being the same view as J|1.
We need to look into why J|2 was installed at K only. Second line of defense: when a
DeltaView cannot be installed, send a message to the view sender (coord) and solicit the
full view instead.
See the attached log.