Skip to content

Conversation

@alexmiller-apple
Copy link
Contributor

This version uses timed_out instead of operation_obsolete, as we can't introduce a new error type on the wire in a backwards compatible way. This means we might kill some parallel peeks when we could have just ignored a response or two, but that will be fixed on master.

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 is to guard against the case where

1. Peeks with sequence numbers 0-39 are submitted
2. A 15min pause happens, in which timeout removes the peek tracker data
3. Peeks with sequence numbers 40-59 are submitted, with the same peekId

The second round of peeks wouldn't have the data left that it's allowed
to start running peek 40 immediately, and thus would hang for 10min
until it gets cleaned up.

Also, guard against overflowing the sequence number.
@etschannen etschannen merged commit c1731e3 into apple:release-6.2 Oct 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants