[jboss-jira] [JBoss JIRA] (JGRP-1817) OverlappingMergeTest testSameCreatorDifferentIDs fails to create correct merged view

Richard Achmatowicz (JIRA) issues at jboss.org
Wed Apr 2 19:19:13 EDT 2014


    [ https://issues.jboss.org/browse/JGRP-1817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12958692#comment-12958692 ] 

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


More information about the jboss-jira mailing list