test: add timeout_on_sleeping_server interop test#1568
Closed
plaflamme wants to merge 1 commit intohyperium:masterfrom
Closed
test: add timeout_on_sleeping_server interop test#1568plaflamme wants to merge 1 commit intohyperium:masterfrom
plaflamme wants to merge 1 commit intohyperium:masterfrom
Conversation
Member
Seems like it failed like you said :D |
Author
|
@LucioFranco Right, as far as I can tell, the new test is correct. Though, I'm not sure why it's flaky and I sometimes see According to this guide a timeout observed in a client should lead to If you have some guidance around how this can be fixed, I can take a stab at it |
Member
|
I am closing this for now, if you would like to continue this PR feel free to reopen. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
I'm dealing with a conformance test that assumes that when you set (and hit) a timeout in a gRPC client, the status code you see is
DEADLINE_EXCEEDED. Currently, when setting a timeout (say by usingrequest.set_timeout), I sometimes see aCANCELLEDcode instead.As far as I can tell, the gRPC interop test
timeout_on_sleeping_serverchecks this and asserts that the status code isDEADLINE_EXCEEDED. This part of the gRPC spec isn't particularly clear, but it looks likegrpc-gosometimes convertsCANCELLEDintoDEADLINE_EXCEEDED(see here).This PR adds this particular test to the interop suite, which I believe is equivalent to this on in grpc-go here.
Solution
I don't know how to solve this. It appears to me like the test case is flaky. I believe this is due to the fact that sometimes, the server is responding with
DEADLINE_EXCEEDand other times, the error is produced internally in the client asCANCELLED.I'm hoping that by adding the test case, this can be nailed down.