void ReplicationCoordinatorImpl::_requestRemotePrimaryStepdown(const HostAndPort& target) { RemoteCommandRequest request(target, "admin", BSON("replSetStepDown" << 1)); log() << "Requesting " << target << " step down from primary"; CBHStatus cbh = _replExecutor.scheduleRemoteCommand(request, remoteStepdownCallback); if (cbh.getStatus() != ErrorCodes::ShutdownInProgress) { fassert(18808, cbh.getStatus()); } }
Status ReplicationCoordinatorImpl::processReplSetFreeze(int secs, BSONObjBuilder* resultObj) { Status result(ErrorCodes::InternalError, "didn't set status in prepareFreezeResponse"); CBHStatus cbh = _replExecutor->scheduleWork( stdx::bind(&TopologyCoordinator::prepareFreezeResponse, _topCoord.get(), stdx::placeholders::_1, Date_t(curTimeMillis64()), secs, resultObj, &result)); if (cbh.getStatus() == ErrorCodes::ShutdownInProgress) { return Status(ErrorCodes::ShutdownInProgress, "replication shutdown in progress"); } fassert(18641, cbh.getStatus()); _replExecutor->wait(cbh.getValue()); return result; }
Status ReplicationCoordinatorImpl::processReplSetGetStatus(BSONObjBuilder* response) { Status result(ErrorCodes::InternalError, "didn't set status in prepareStatusResponse"); CBHStatus cbh = _replExecutor->scheduleWork( stdx::bind(&TopologyCoordinator::prepareStatusResponse, _topCoord.get(), stdx::placeholders::_1, Date_t(curTimeMillis64()), time(0) - serverGlobalParams.started, _getLastOpApplied(), response, &result)); if (cbh.getStatus() == ErrorCodes::ShutdownInProgress) { return Status(ErrorCodes::ShutdownInProgress, "replication shutdown in progress"); } fassert(18640, cbh.getStatus()); _replExecutor->wait(cbh.getValue()); return result; }
Status ReplicationCoordinatorImpl::processHeartbeat(const ReplSetHeartbeatArgs& args, ReplSetHeartbeatResponse* response) { Status result(ErrorCodes::InternalError, "didn't set status in prepareHeartbeatResponse"); CBHStatus cbh = _replExecutor->scheduleWork( stdx::bind(&TopologyCoordinator::prepareHeartbeatResponse, _topCoord.get(), stdx::placeholders::_1, Date_t(curTimeMillis64()), args, _settings.ourSetName(), _getLastOpApplied(), response, &result)); if (cbh.getStatus() == ErrorCodes::ShutdownInProgress) { return Status(ErrorCodes::ShutdownInProgress, "replication shutdown in progress"); } fassert(18508, cbh.getStatus()); _replExecutor->wait(cbh.getValue()); return result; }
void InitialSyncState::setStatus(const CBHStatus& s) { setStatus(s.getStatus()); }