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:
Evan Tschannen 2018-05-01 22:20:25 -07:00
parent 12ef63b698
commit b4bd03e67e
1 changed files with 3 additions and 3 deletions

View File

@ -1085,9 +1085,6 @@ ACTOR Future<Void> doQueueCommit( TLogData* self, Reference<LogData> logData ) {
ASSERT( ver > logData->queueCommittedVersion.get() );
logData->queueCommittedVersion.set(ver);
self->queueCommitEnd.set(commitNumber);
logData->durableKnownCommittedVersion = knownCommittedVersion;
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);
@ -1100,6 +1097,9 @@ ACTOR Future<Void> doQueueCommit( TLogData* self, Reference<LogData> logData ) {
logData->logSystem->get()->pop(ver, logData->remoteTag, knownCommittedVersion, logData->locality);
}
logData->queueCommittedVersion.set(ver);
self->queueCommitEnd.set(commitNumber);
return Void();
}