mirror of https://gitee.com/bigwinds/arangodb
attempt to fix races in replication
This commit is contained in:
parent
62aa9a1b0a
commit
c5a195d62c
|
@ -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) {
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue