mirror of https://gitee.com/bigwinds/arangodb
make replication start with 2.6 configuration
This commit is contained in:
parent
7c428aceb9
commit
d9d2784a84
|
@ -231,8 +231,6 @@ static int LoadConfiguration (TRI_vocbase_t* vocbase,
|
||||||
return TRI_ERROR_REPLICATION_INVALID_APPLIER_CONFIGURATION;
|
return TRI_ERROR_REPLICATION_INVALID_APPLIER_CONFIGURATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
int res = TRI_ERROR_NO_ERROR;
|
|
||||||
|
|
||||||
if (config->_endpoint != nullptr) {
|
if (config->_endpoint != nullptr) {
|
||||||
TRI_FreeString(TRI_CORE_MEM_ZONE, config->_endpoint);
|
TRI_FreeString(TRI_CORE_MEM_ZONE, config->_endpoint);
|
||||||
config->_endpoint = nullptr;
|
config->_endpoint = nullptr;
|
||||||
|
@ -250,20 +248,8 @@ static int LoadConfiguration (TRI_vocbase_t* vocbase,
|
||||||
config->_password = nullptr;
|
config->_password = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// read the endpoint
|
|
||||||
TRI_json_t const* value = TRI_LookupObjectJson(json.get(), "endpoint");
|
|
||||||
|
|
||||||
if (! TRI_IsStringJson(value)) {
|
|
||||||
res = TRI_ERROR_REPLICATION_INVALID_APPLIER_CONFIGURATION;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
config->_endpoint = TRI_DuplicateString2Z(TRI_CORE_MEM_ZONE,
|
|
||||||
value->_value._string.data,
|
|
||||||
value->_value._string.length - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
// read the database name
|
// read the database name
|
||||||
value = TRI_LookupObjectJson(json.get(), "database");
|
TRI_json_t const* value = TRI_LookupObjectJson(json.get(), "database");
|
||||||
|
|
||||||
if (! TRI_IsStringJson(value)) {
|
if (! TRI_IsStringJson(value)) {
|
||||||
config->_database = TRI_DuplicateStringZ(TRI_CORE_MEM_ZONE,
|
config->_database = TRI_DuplicateStringZ(TRI_CORE_MEM_ZONE,
|
||||||
|
@ -386,7 +372,20 @@ static int LoadConfiguration (TRI_vocbase_t* vocbase,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
// read the endpoint
|
||||||
|
value = TRI_LookupObjectJson(json.get(), "endpoint");
|
||||||
|
|
||||||
|
if (! TRI_IsStringJson(value)) {
|
||||||
|
// we haven't found an endpoint. now don't let the start fail but continue
|
||||||
|
config->_autoStart = false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
config->_endpoint = TRI_DuplicateString2Z(TRI_CORE_MEM_ZONE,
|
||||||
|
value->_value._string.data,
|
||||||
|
value->_value._string.length - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRI_ERROR_NO_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -559,10 +558,6 @@ TRI_replication_applier_t* TRI_CreateReplicationApplier (TRI_server_t* server,
|
||||||
TRI_vocbase_t* vocbase) {
|
TRI_vocbase_t* vocbase) {
|
||||||
TRI_replication_applier_t* applier = new TRI_replication_applier_t(server, vocbase);
|
TRI_replication_applier_t* applier = new TRI_replication_applier_t(server, vocbase);
|
||||||
|
|
||||||
if (applier == nullptr) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
TRI_InitConfigurationReplicationApplier(&applier->_configuration);
|
TRI_InitConfigurationReplicationApplier(&applier->_configuration);
|
||||||
TRI_InitStateReplicationApplier(&applier->_state);
|
TRI_InitStateReplicationApplier(&applier->_state);
|
||||||
|
|
||||||
|
@ -571,10 +566,10 @@ TRI_replication_applier_t* TRI_CreateReplicationApplier (TRI_server_t* server,
|
||||||
|
|
||||||
if (res != TRI_ERROR_NO_ERROR &&
|
if (res != TRI_ERROR_NO_ERROR &&
|
||||||
res != TRI_ERROR_FILE_NOT_FOUND) {
|
res != TRI_ERROR_FILE_NOT_FOUND) {
|
||||||
TRI_set_errno(res);
|
|
||||||
TRI_DestroyStateReplicationApplier(&applier->_state);
|
TRI_DestroyStateReplicationApplier(&applier->_state);
|
||||||
TRI_DestroyConfigurationReplicationApplier(&applier->_configuration);
|
TRI_DestroyConfigurationReplicationApplier(&applier->_configuration);
|
||||||
delete applier;
|
delete applier;
|
||||||
|
TRI_set_errno(res);
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -583,10 +578,10 @@ TRI_replication_applier_t* TRI_CreateReplicationApplier (TRI_server_t* server,
|
||||||
|
|
||||||
if (res != TRI_ERROR_NO_ERROR &&
|
if (res != TRI_ERROR_NO_ERROR &&
|
||||||
res != TRI_ERROR_FILE_NOT_FOUND) {
|
res != TRI_ERROR_FILE_NOT_FOUND) {
|
||||||
TRI_set_errno(res);
|
|
||||||
TRI_DestroyStateReplicationApplier(&applier->_state);
|
TRI_DestroyStateReplicationApplier(&applier->_state);
|
||||||
TRI_DestroyConfigurationReplicationApplier(&applier->_configuration);
|
TRI_DestroyConfigurationReplicationApplier(&applier->_configuration);
|
||||||
delete applier;
|
delete applier;
|
||||||
|
TRI_set_errno(res);
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -897,8 +892,9 @@ int TRI_LoadStateReplicationApplier (TRI_vocbase_t* vocbase,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res == TRI_ERROR_NO_ERROR) {
|
if (res == TRI_ERROR_NO_ERROR) {
|
||||||
// read the safeResumeTick
|
// read the safeResumeTick. note: this is an optional attribute
|
||||||
res |= ReadTick(json.get(), "safeResumeTick", &state->_safeResumeTick, true);
|
state->_safeResumeTick = 0;
|
||||||
|
ReadTick(json.get(), "safeResumeTick", &state->_safeResumeTick, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_TRACE("replication state file read successfully");
|
LOG_TRACE("replication state file read successfully");
|
||||||
|
|
|
@ -1486,8 +1486,9 @@ TRI_vocbase_t* TRI_OpenVocBase (TRI_server_t* server,
|
||||||
vocbase->_replicationApplier = TRI_CreateReplicationApplier(server, vocbase);
|
vocbase->_replicationApplier = TRI_CreateReplicationApplier(server, vocbase);
|
||||||
|
|
||||||
if (vocbase->_replicationApplier == nullptr) {
|
if (vocbase->_replicationApplier == nullptr) {
|
||||||
// TODO
|
LOG_FATAL_AND_EXIT("initializing replication applier for database '%s' failed: %s",
|
||||||
LOG_FATAL_AND_EXIT("initializing replication applier for database '%s' failed", vocbase->_name);
|
vocbase->_name,
|
||||||
|
TRI_last_error());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue