We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
This ticket was obsoleted by the fixes to the underlying issue in tower::Buffer, see #1593 for details.
tower::Buffer
Is your feature request related to a problem? Please describe.
The script::Verifier service uses poll_ready correctly, but in a risky way. (See #1593.)
script::Verifier
poll_ready
The code works right now. But if the StateService is changed, the script::Verifier could fill up Buffers or Batches, potentially causing hangs.
StateService
Buffer
Batch
Describe the solution you'd like
Make sure each poll_ready is followed by a call:
call
Poll::Ready(Ok(()))
script::Verifier::poll_ready
ServiceExt::oneshot
poll_ready/call
The documentation should look something like:
// Correctness: // // We avoid calling `poll_ready` on state service here, because that makes it easier to leak buffer slots. // See #1593 for details.
See #1593 for a detailed background explanation.
Describe alternatives you've considered
Don't make any changes. Future changes might cause Zebra to hang.
Follow Up
Handle backpressure correctly (#1618)
Original Issues
Design: Make sure all poll_ready reservations are actually used in a call #1593 Example: Fix poll_ready usage for the Inbound service #1620
The text was updated successfully, but these errors were encountered:
@oxarbitrage you might want to work on these script::Verifier fixes after you've finished all your other high-priority tasks.
Or @yaahc you might want to work on this, if you finish the proof verifier before @oxarbitrage has finished his other work.
Sorry, something went wrong.
No branches or pull requests
This ticket was obsoleted by the fixes to the underlying issue in
tower::Buffer
, see #1593 for details.Is your feature request related to a problem? Please describe.
The
script::Verifier
service usespoll_ready
correctly, but in a risky way. (See #1593.)The code works right now. But if the
StateService
is changed, thescript::Verifier
could fill upBuffer
s orBatch
es, potentially causing hangs.Describe the solution you'd like
Make sure each
poll_ready
is followed by acall
:Poll::Ready(Ok(()))
fromscript::Verifier::poll_ready
ServiceExt::oneshot
to call theStateService
poll_ready/call
invariants to avoid future changes causing hangsThe documentation should look something like:
See #1593 for a detailed background explanation.
Describe alternatives you've considered
Don't make any changes. Future changes might cause Zebra to hang.
Follow Up
Handle backpressure correctly (#1618)
Original Issues
Design: Make sure all poll_ready reservations are actually used in a call #1593
Example: Fix poll_ready usage for the Inbound service #1620
The text was updated successfully, but these errors were encountered: