private boolean becomeActive() { assert wantToBeInElection; if (state == State.ACTIVE) { // already active return true; } try { Stat oldBreadcrumbStat = fenceOldActive(); writeBreadCrumbNode(oldBreadcrumbStat); LOG.debug("Becoming active for {}", this); appClient.becomeActive(); state = State.ACTIVE; return true; } catch (Exception e) { LOG.warn("Exception handling the winning of election", e); // Caller will handle quitting and rejoining the election. return false; } }
private void becomeStandby() { if (state != State.STANDBY) { LOG.debug("Becoming standby for {}", this); state = State.STANDBY; appClient.becomeStandby(); } }
private void enterNeutralMode() { if (state != State.NEUTRAL) { LOG.debug("Entering neutral mode for {}", this); state = State.NEUTRAL; appClient.enterNeutralMode(); } }
Mockito.verify(mockApp, Mockito.times(1)).becomeStandby(); verifyExistCall(1); Assert.assertTrue(elector.isMonitorLockNodePending()); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(0)).enterNeutralMode(); elector.processResult(Code.OK.intValue(), ZK_LOCK_NAME, mockZK, ZK_LOCK_NAME); Mockito.verify(mockApp, Mockito.times(1)).becomeActive(); verifyExistCall(4); Assert.assertTrue(elector.isMonitorLockNodePending()); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode(); elector.processResult(Code.OK.intValue(), ZK_LOCK_NAME, mockZK, ZK_LOCK_NAME); Mockito.verify(mockApp, Mockito.times(2)).becomeActive(); verifyExistCall(5); Assert.assertTrue(elector.isMonitorLockNodePending()); Mockito.verify(mockApp, Mockito.times(1)).notifyFatalError( "Unexpected watch error from Zookeeper");
Mockito.verify(mockApp, Mockito.times(1)).becomeStandby(); verifyExistCall(1); Assert.assertTrue(elector.isMonitorLockNodePending()); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(0)).enterNeutralMode(); elector.processResult(Code.OK.intValue(), ZK_LOCK_NAME, mockZK, ZK_LOCK_NAME); Mockito.verify(mockApp, Mockito.times(1)).becomeActive(); verifyExistCall(4); Assert.assertTrue(elector.isMonitorLockNodePending()); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode(); elector.processResult(Code.OK.intValue(), ZK_LOCK_NAME, mockZK, ZK_LOCK_NAME); Mockito.verify(mockApp, Mockito.times(2)).becomeActive(); verifyExistCall(5); Assert.assertTrue(elector.isMonitorLockNodePending()); Mockito.verify(mockApp, Mockito.times(1)).notifyFatalError( "Unexpected watch error from Zookeeper");
ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zkServer, PARENT_DIR, appDatas[0]); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cbs[1], Mockito.timeout(1000)).becomeStandby(); checkFatalsAndReset(); ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zkServer, PARENT_DIR, appDatas[1]); Mockito.verify(cbs[1], Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeStandby(); checkFatalsAndReset(); Mockito.verify(cbs[1], Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cbs[0], Mockito.timeout(1000)).fenceOldActive( AdditionalMatchers.aryEq(appDatas[1])); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeActive(); } finally { electors[1].allowSessionReestablishmentForTests(); Mockito.verify(cbs[1], Mockito.timeout(5000)).becomeStandby(); checkFatalsAndReset(); Mockito.verify(cbs[0], Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cbs[1], Mockito.timeout(1000)).fenceOldActive( AdditionalMatchers.aryEq(appDatas[0]));
ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zkServer, PARENT_DIR, appDatas[0]); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cbs[1], Mockito.timeout(1000)).becomeStandby(); checkFatalsAndReset(); ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zkServer, PARENT_DIR, appDatas[1]); Mockito.verify(cbs[1], Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeStandby(); checkFatalsAndReset(); Mockito.verify(cbs[1], Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cbs[0], Mockito.timeout(1000)).fenceOldActive( AdditionalMatchers.aryEq(appDatas[1])); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeActive(); } finally { electors[1].allowSessionReestablishmentForTests(); Mockito.verify(cbs[1], Mockito.timeout(5000)).becomeStandby(); checkFatalsAndReset(); Mockito.verify(cbs[0], Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cbs[1], Mockito.timeout(1000)).fenceOldActive( AdditionalMatchers.aryEq(appDatas[0]));
Event.KeeperState.Disconnected); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode(); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode(); Mockito.verify(mockApp, Mockito.times(1)).becomeActive(); verifyExistCall(2); Mockito.verify(mockApp, Mockito.times(1)).notifyFatalError( "Unexpected Zookeeper watch event state: AuthFailed"); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode();
Event.KeeperState.Disconnected); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode(); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode(); Mockito.verify(mockApp, Mockito.times(1)).becomeActive(); verifyExistCall(2); Mockito.verify(mockApp, Mockito.times(1)).notifyFatalError( "Unexpected Zookeeper watch event state: AuthFailed"); Mockito.verify(mockApp, Mockito.times(1)).enterNeutralMode();
.notifyFatalError( "Received create error from Zookeeper. code:CONNECTIONLOSS " + "for path " + ZK_LOCK_NAME + ". " + Mockito.when(mockZK.getSessionId()).thenReturn(1L); elector.processResult(Code.OK.intValue(), ZK_LOCK_NAME, mockZK, stat); Mockito.verify(mockApp, Mockito.times(1)).becomeActive(); verifyExistCall(1); Mockito.verify(mockZK, Mockito.times(6)).create(ZK_LOCK_NAME, data,
.notifyFatalError( "Received create error from Zookeeper. code:CONNECTIONLOSS " + "for path " + ZK_LOCK_NAME + ". " + Mockito.when(mockZK.getSessionId()).thenReturn(1L); elector.processResult(Code.OK.intValue(), ZK_LOCK_NAME, mockZK, stat); Mockito.verify(mockApp, Mockito.times(1)).becomeActive(); verifyExistCall(1); Mockito.verify(mockZK, Mockito.times(6)).create(ZK_LOCK_NAME, data,
LOG.info("But old node has our own data, so don't need to fence it."); } else { appClient.fenceOldActive(data);
LOG.info("But old node has our own data, so don't need to fence it."); } else { appClient.fenceOldActive(data);
LOG.info("But old node has our own data, so don't need to fence it."); } else { appClient.fenceOldActive(data);
LOG.info("But old node has our own data, so don't need to fence it."); } else { appClient.fenceOldActive(data);
ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zks, PARENT_DIR, appDatas[0]); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cbs[1], Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cbs[1], Mockito.never()).becomeActive(); ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zks, PARENT_DIR, null);
Mockito.verify(mockApp, Mockito.times(1)).becomeStandby(); verifyExistCall(1); Assert.assertTrue(elector.isMonitorLockNodePending()); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(0)).enterNeutralMode(); ZK_LOCK_NAME); Mockito.verify(mockApp, Mockito.times(1)).becomeStandby();
Mockito.verify(mockApp, Mockito.times(1)).becomeStandby(); verifyExistCall(1); Assert.assertTrue(elector.isMonitorLockNodePending()); elector.processWatchEvent(mockZK, mockEvent); Mockito.verify(mockApp, Mockito.times(0)).enterNeutralMode(); ZK_LOCK_NAME); Mockito.verify(mockApp, Mockito.times(1)).becomeStandby();
ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zks, PARENT_DIR, appDatas[0]); Mockito.verify(cbs[0], Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cbs[1], Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cbs[1], Mockito.never()).becomeActive(); ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zks, PARENT_DIR, null);
ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zks, PARENT_DIR, appData); Mockito.verify(cb, Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cb, Mockito.timeout(1000)).enterNeutralMode(); Mockito.verify(cb, Mockito.timeout(1000)).becomeActive(); checkFatalsAndReset(); Mockito.verify(cb, Mockito.never()).becomeActive(); ActiveStandbyElectorTestUtil.waitForActiveLockData(null, zks, PARENT_DIR, null);