mirror of
https://github.com/apple/foundationdb.git
synced 2025-06-01 02:37:02 +08:00
When switching parallel->single->parallel, reset sequence and peekId
This fixes an issue where one could hang for 10min for the second parallel peek to time out, if one happened to catch the edge of a onlySpilled transition wrong.
This commit is contained in:
parent
c25f6b8ae3
commit
c008e7f8b3
@ -152,6 +152,9 @@ ACTOR Future<Void> serverPeekParallelGetMore( ILogSystem::ServerPeekCursor* self
|
||||
while(self->futureResults.size() < SERVER_KNOBS->PARALLEL_GET_MORE_REQUESTS && self->interf->get().present()) {
|
||||
self->futureResults.push_back( brokenPromiseToNever( self->interf->get().interf().peekMessages.getReply(TLogPeekRequest(self->messageVersion.version,self->tag,self->returnIfBlocked, self->onlySpilled, std::make_pair(self->randomID, self->sequence++)), taskID) ) );
|
||||
}
|
||||
} else if (self->futureResults.size() == 1) {
|
||||
self->randomID = deterministicRandom()->randomUniqueID();
|
||||
self->sequence = 0;
|
||||
} else if (self->futureResults.size() == 0) {
|
||||
return Void();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user