-
Couldn't load subscription status.
- Fork 5.2k
improve quic test stability for cancellation #56347
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
Conversation
|
Tagging subscribers to this area: @dotnet/ncl Issue DetailsI think the
|
|
@MihaZupan this test hung on net6.0-Linux-Debug-x64-mono_interpreter_release-Debian.9.Amd64.Open Related to your #56208 ? |
|
Yes, the test was added in that PR. I will take a look |
|
@wfurt could you please describe a situation that this is fixing? I still don't understand how both of the functions can return, (which should mean that all streams were finished and disposed) but the connections are still not save to call Close. Isn't that a symptom of client/server functions badly written e.g. leaking streams? |
|
Here is example of failed run of ReadOutstanding_ReadAborted_Throws. Test function calls We got Connection close and that will break the ShutdownCompleted. It is likely this is specific to cases when test does something abortive. I understand the concern about silent failures. However, if the test care, it should probably verify what ever behavior in the callback-functions. Perhaps different fix would be to another parameter to simply cleanup as fast as e can in abortive way, ignoring errors, making sure we do not crash. Or alternatively avoid Any thoughts on this @ManickaP @geoffkizer ??? |
|
I will wait. And see if we end up using different test pattern for the cases when the test cause damage to the provided objects. |
I think the
CloseAsyncwas there for historical reasons to properly close.This should no longer be needed as well as it creates problem for tests with cancellation or somewhat destructive behavir.
Depending on timing and situation this may fail with "Transport close" or "User aborted" message event if both test function succeeded.
if we want to keep something in place I think we should replace this with Abort/Reset. (but relying on Dispose looks good to me)
I did few hundreds runs and I did not see any issue.