Repository: geode Updated Branches: refs/heads/develop d08a75bed -> 0254a60f5
GEODE-3052 Restarting 2 locators together causes potential locator split brain The fix for this issue introduced different timing in GMSJoinLeave's discovery process that affected one of the unit tests for that class, causing periodic failures. I've added an Awaitility.await() to stabilize the test. Project: http://git-wip-us.apache.org/repos/asf/geode/repo Commit: http://git-wip-us.apache.org/repos/asf/geode/commit/0254a60f Tree: http://git-wip-us.apache.org/repos/asf/geode/tree/0254a60f Diff: http://git-wip-us.apache.org/repos/asf/geode/diff/0254a60f Branch: refs/heads/develop Commit: 0254a60f5939b537284aba4a59a7cff4da5f3fc4 Parents: d08a75b Author: Bruce Schuchardt <bschucha...@pivotal.io> Authored: Wed Jun 28 10:39:58 2017 -0700 Committer: Bruce Schuchardt <bschucha...@pivotal.io> Committed: Wed Jun 28 10:39:58 2017 -0700 ---------------------------------------------------------------------- .../gms/membership/GMSJoinLeaveJUnitTest.java | 43 +++++++++----------- 1 file changed, 20 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/geode/blob/0254a60f/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java ---------------------------------------------------------------------- diff --git a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java index a31fa8d..2c7f9d9 100644 --- a/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java +++ b/geode-core/src/test/java/org/apache/geode/distributed/internal/membership/gms/membership/GMSJoinLeaveJUnitTest.java @@ -1196,29 +1196,26 @@ public class GMSJoinLeaveJUnitTest { @Test public void testCoordinatorFindRequestSuccess() throws Exception { - try { - initMocks(false); - HashSet<InternalDistributedMember> registrants = new HashSet<>(); - registrants.add(mockMembers[0]); - FindCoordinatorResponse fcr = new FindCoordinatorResponse(mockMembers[0], mockMembers[0], - false, null, registrants, false, true, null); - NetView view = createView(); - JoinResponseMessage jrm = new JoinResponseMessage(mockMembers[0], view, 0); - - TcpClientWrapper tcpClientWrapper = mock(TcpClientWrapper.class); - gmsJoinLeave.setTcpClientWrapper(tcpClientWrapper); - FindCoordinatorRequest fcreq = - new FindCoordinatorRequest(gmsJoinLeaveMemberId, new HashSet<>(), -1, null, 0, ""); - int connectTimeout = (int) services.getConfig().getMemberTimeout() * 2; - when(tcpClientWrapper.sendCoordinatorFindRequest(new InetSocketAddress("localhost", 12345), - fcreq, connectTimeout)).thenReturn(fcr); - callAsnyc(() -> { - gmsJoinLeave.installView(view); - }); - assertTrue("Should be able to join ", gmsJoinLeave.join()); - } finally { - - } + initMocks(false); + HashSet<InternalDistributedMember> registrants = new HashSet<>(); + registrants.add(mockMembers[0]); + FindCoordinatorResponse fcr = new FindCoordinatorResponse(mockMembers[0], mockMembers[0], + false, null, registrants, false, true, null); + NetView view = createView(); + JoinResponseMessage jrm = new JoinResponseMessage(mockMembers[0], view, 0); + + TcpClientWrapper tcpClientWrapper = mock(TcpClientWrapper.class); + gmsJoinLeave.setTcpClientWrapper(tcpClientWrapper); + FindCoordinatorRequest fcreq = + new FindCoordinatorRequest(gmsJoinLeaveMemberId, new HashSet<>(), -1, null, 0, ""); + int connectTimeout = (int) services.getConfig().getMemberTimeout() * 2; + when(tcpClientWrapper.sendCoordinatorFindRequest(new InetSocketAddress("localhost", 12345), + fcreq, connectTimeout)).thenReturn(fcr); + callAsnyc(() -> { + gmsJoinLeave.installView(view); + }); + Awaitility.await().atMost(10, TimeUnit.SECONDS).until (() -> + assertTrue("Should be able to join ", gmsJoinLeave.join())); } private void callAsnyc(Runnable run) {