Skip to content
New issue

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

x/ref/runtime/internal/flow: message.Release can lead to deadlock for proxies. #286

Open
cosnicolaou opened this issue Aug 24, 2022 · 0 comments

Comments

@cosnicolaou
Copy link
Contributor

Sending message.Release messages is subject to flow control and when running through a proxy cannot be fragmented (as of PR vanadium/issues#61) which can lead to deadlock if the message is too big to be sent using the currently available flow control tokens. This is currently encountered in the RPC benchmark suite. However, the fragmentation is only required because of an unrelated bug in the implementation flow.Conn and flow.Flow whereby flow counters are not deleted when a flow is closed see #285. Regardless of how large the Release message is, it should not be subject to flow control to avoid the potential for deadlock. Note that even if the message is fragmented deadlock may arise if the tokens required to unblock the flow are specified in the portion of the message that is not sent (ie. in a second fragment).

@cosnicolaou cosnicolaou transferred this issue from vanadium/issues Aug 24, 2022
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

No branches or pull requests

1 participant