private synchronized LeaderLatch startLeaderLatch() throws InterruptedException {
LeaderLatch latch = _latch; // Read the volatile once
// Assert not started already. initLeaderLatch() and closeLeaderLatch() leave the latch in the latent state.
checkState(latch.getState() == LeaderLatch.State.LATENT);
try {
latch.start();
} catch (InterruptedException ie) {
throw ie;
} catch (Throwable t) {
LOG.error("Exception attempting to acquire leadership: {}", getId(), t);
}