1
0
Fork 0

attempt to fix races in replication

This commit is contained in:
jsteemann 2017-05-10 14:32:16 +02:00
parent 62aa9a1b0a
commit c5a195d62c
3 changed files with 6 additions and 6 deletions

View File

@ -565,7 +565,7 @@ int ContinuousSyncer::processDocument(TRI_replication_operation_e type,
return TRI_ERROR_REPLICATION_UNEXPECTED_TRANSACTION;
}
trx->addCollectionAtRuntime(cid, "", AccessMode::Type::WRITE);
trx->addCollectionAtRuntime(cid, "", AccessMode::Type::EXCLUSIVE);
int res = applyCollectionDumpMarker(*trx, trx->name(cid), type, old, doc, errorMsg);
if (res == TRI_ERROR_ARANGO_UNIQUE_CONSTRAINT_VIOLATED && isSystem) {

View File

@ -735,7 +735,7 @@ int InitialSyncer::handleCollectionDump(arangodb::LogicalCollection* col,
if (res.ok()) {
SingleCollectionTransaction trx(
transaction::StandaloneContext::Create(_vocbase), col->cid(),
AccessMode::Type::WRITE);
AccessMode::Type::EXCLUSIVE);
res = trx.begin();
@ -937,7 +937,7 @@ int InitialSyncer::handleCollectionSync(arangodb::LogicalCollection* col,
// remote collection has no documents. now truncate our local collection
SingleCollectionTransaction trx(
transaction::StandaloneContext::Create(_vocbase), col->cid(),
AccessMode::Type::WRITE);
AccessMode::Type::EXCLUSIVE);
Result res = trx.begin();
@ -1095,7 +1095,7 @@ int InitialSyncer::handleCollection(VPackSlice const& parameters,
SingleCollectionTransaction trx(
transaction::StandaloneContext::Create(_vocbase), col->cid(),
AccessMode::Type::WRITE);
AccessMode::Type::EXCLUSIVE);
Result res = trx.begin();
@ -1212,7 +1212,7 @@ int InitialSyncer::handleCollection(VPackSlice const& parameters,
try {
SingleCollectionTransaction trx(
transaction::StandaloneContext::Create(_vocbase), col->cid(),
AccessMode::Type::WRITE);
AccessMode::Type::EXCLUSIVE);
res = trx.begin();

View File

@ -624,7 +624,7 @@ function ReplicationSuite() {
assertTrue(replication.applier.state().state.running);
return "wait";
} catch (err) {
// task does not exist. we're done
// task does not exist anymore. we're done
state.lastLogTick = replication.logger.state().state.lastLogTick;
state.checksum = collectionChecksum(cn);
state.count = collectionCount(cn);