[
https://issues.jboss.org/browse/JGRP-1817?page=com.atlassian.jira.plugin....
]
Richard Achmatowicz commented on JGRP-1817:
-------------------------------------------
If I run the test case in a debugger, I see what is expected:
{noformat}
==== triggering merge solicitation ====:
Discovery:A received GET_MBRS_REQ
ping_rsps: size = 0, id = []
Discovery:C received GET_MBRS_REQ
Discovery:B received GET_MBRS_REQ
Discovery: C: received GET_MBRS_REQ from A, sending response [PING: type=GET_MBRS_RSP,
arg=C, view_id=[A|7] ([A|7] [A, B, C]), is_server=true, is_coord=false]
Discovery: B: received GET_MBRS_REQ from A, sending response [PING: type=GET_MBRS_RSP,
arg=B, view_id=[A|6] ([A|6] [A, B]), is_server=true, is_coord=false]
Discovery:A received GET_MBRS_RSP
Discovery:A received GET_MBRS_RSP
Discovery: A adding ping rsp (to responses) from C
Responses: calling add response (not present): address = C
Discovery: A adding ping rsp (to responses) from B
ping_rsps: size = 1, id = [C, view_id=[A|7] ([A|7] [A, B, C]), is_server=true,
is_coord=false]
Responses: calling add response (not present): address = B
ping_rsps: size = 2, id = [C, view_id=[A|7] ([A|7] [A, B, C]), is_server=true,
is_coord=false, B, view_id=[A|6] ([A|6] [A, B]), is_server=true, is_coord=false]
{noformat}
If I run excatly the same test case in the testsuite from a shell, I see this:
{noformat}
==== triggering merge solicitation ====:
298102 [TRACE] TCPPING: - A: sending discovery request to 127.0.0.1:27231
298104 [TRACE] TCPPING: - A: sending discovery request to 127.0.0.1:27232
298105 [TRACE] TCPPING: - A: sending discovery request to 127.0.0.1:27230
ping_rsps: size = 0, id = []
ping_rsps: size = 1, id = [C, view_id=[A|7] ([A|7] [A, B, C]), is_server=true,
is_coord=false]
ping_rsps: size = 2, id = [C, view_id=[A|7] ([A|7] [A, B, C]), is_server=true,
is_coord=false, B, view_id=[A|6] ([A|6] [A, B]), is_server=true, is_coord=false]
301106 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 2 total (2 servers (0
coord), 0 clients)
301107 [TRACE] MERGE2: - Discovery results:
[C]: view_id=[A|7] ([A|7] [A, B, C])
[B]: view_id=[A|6] ([A|6] [A, B])
[A]: view_id=[A|5] ([A|5] [A])
301107 [DEBUG] MERGE2: - A found different views : [A|6], [A|7], [A|5]; sending up MERGE
event with merge participants [B, C, A].
Discovery results:
[C]: coord=A
[B]: coord=A
[A]: coord=A
{noformat}
OverlappingMergeTest testSameCreatorDifferentIDs fails to create
correct merged view
------------------------------------------------------------------------------------
Key: JGRP-1817
URL:
https://issues.jboss.org/browse/JGRP-1817
Project: JGroups
Issue Type: Bug
Affects Versions: 3.2.13
Environment: RHEL
Reporter: Richard Achmatowicz
Assignee: Bela Ban
Fix For: 3.2.14
This test does the following:
- creates three channels a,b,c
- injects views
{noformat}
A: {A|5 A}, B:{A|6 A,B}, C:{A|7 A,B,C}
{noformat}
- calls MERGE.sendMergeSolicitation() on channel A to simulate the calling of the
periodic task MERGE.findSubgroupsTask which should find all views of all reachable
members, check if there are different views, and if there are prepare and send a MERGE
event up to GMS
- checks that all channels have the final view of size 3
The test fails intermittently but frequently on RHEL, with the same failure each time:
{noformat}
-------------------------------------------------------------------
GMS: address=A, cluster=OverlappingMergeTest, physical address=10.16.95.7:27215
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=B, cluster=OverlappingMergeTest, physical address=10.16.95.7:27216
-------------------------------------------------------------------
-------------------------------------------------------------------
GMS: address=C, cluster=OverlappingMergeTest, physical address=10.16.95.7:27217
-------------------------------------------------------------------
------------- testSameCreatorDifferentIDs -----------
[A] view=[A|5] [A]
[B] view=[A|6] [A, B]
[C] view=[A|7] [A, B, C]
A's view: [A|5] [A]
B's view: [A|6] [A, B]
C's view: [A|7] [A, B, C]
Enabling TRACE debugging for GMS, MERGE2 and Discovery
==== triggering merge solicitation ====:
212534 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27216
212537 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27218
212538 [TRACE] TCPPING: - A: sending discovery request to 10.16.95.7:27217
215538 [TRACE] TCPPING: - A: discovery took 3004 ms: responses: 1 total (1 servers (0
coord), 0 clients)
215539 [TRACE] MERGE2: - Discovery results:
[B]: view_id=[A|6] ([A|6] [A, B])
[A]: view_id=[A|5] ([A|5] [A])
215539 [DEBUG] MERGE2: - A found different views : [A|5], [A|6]; sending up MERGE event
with merge participants [B, A].
Discovery results:
[B]: coord=A
[A]: coord=A
==== checking views after merge ====:
....................Disabling TRACE debugging for GMS, MERGE2 and Discovery
A's view: [A|7] [A, B]
B's view: [A|7] [A, B]
C's view: [A|7] [A, B, C]
{noformat}
Whenever this test fails, it is the discovery phase which fails to find the correct set
of views. Instead of finding views for channels A, B and C, it only finds views for
channels A and B.
Also, the discovery requests are sent to host:port combinations which are offset by 1.
For example, in the case above, the host:port combinations of the channels are
10.16.95.7:27215, 10.16.95.7:27216, and 10.16.95.7:27217, but the pings go put to
10.16.95.7:27216, 10.16.95.7:27217, and 10.16.95.7:27218. Not sure if this is significant
as it still covers the channels B and C.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira