fix: we cannot set queueCommitEnd until we have popped the log system to prevent the popped version from going backwards
This commit is contained in:
parent
12ef63b698
commit
b4bd03e67e
|
@ -1085,9 +1085,6 @@ ACTOR Future<Void> doQueueCommit( TLogData* self, Reference<LogData> logData ) {
|
||||||
|
|
||||||
ASSERT( ver > logData->queueCommittedVersion.get() );
|
ASSERT( ver > logData->queueCommittedVersion.get() );
|
||||||
|
|
||||||
logData->queueCommittedVersion.set(ver);
|
|
||||||
self->queueCommitEnd.set(commitNumber);
|
|
||||||
|
|
||||||
logData->durableKnownCommittedVersion = knownCommittedVersion;
|
logData->durableKnownCommittedVersion = knownCommittedVersion;
|
||||||
if(logData->unpoppedRecoveredTags == 0 && knownCommittedVersion >= logData->recoveredAt && logData->recoveryComplete.canBeSet()) {
|
if(logData->unpoppedRecoveredTags == 0 && knownCommittedVersion >= logData->recoveredAt && logData->recoveryComplete.canBeSet()) {
|
||||||
TraceEvent("TLogRecoveryComplete", logData->logId).detail("tags", logData->unpoppedRecoveredTags).detail("durableKCVer", logData->durableKnownCommittedVersion).detail("recoveredAt", logData->recoveredAt);
|
TraceEvent("TLogRecoveryComplete", logData->logId).detail("tags", logData->unpoppedRecoveredTags).detail("durableKCVer", logData->durableKnownCommittedVersion).detail("recoveredAt", logData->recoveredAt);
|
||||||
|
@ -1100,6 +1097,9 @@ ACTOR Future<Void> doQueueCommit( TLogData* self, Reference<LogData> logData ) {
|
||||||
logData->logSystem->get()->pop(ver, logData->remoteTag, knownCommittedVersion, logData->locality);
|
logData->logSystem->get()->pop(ver, logData->remoteTag, knownCommittedVersion, logData->locality);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logData->queueCommittedVersion.set(ver);
|
||||||
|
self->queueCommitEnd.set(commitNumber);
|
||||||
|
|
||||||
return Void();
|
return Void();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue