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

HTTPRoute Timeout Tests can pass when implementations have timeouts setup #3011

Open
dprotaso opened this issue Apr 22, 2024 · 2 comments
Open

Comments

@dprotaso
Copy link
Contributor

dprotaso commented Apr 22, 2024

So I added this timeout test case to ensure implementations support disabling timeouts with 0s.

The times are pretty low (eg. 1s) delay. But for envoy implementations with default timeout values this passes. So now I'm wondering what's the best way to exercise that timeouts are disabled.

Looking for ideas on what to tweak here - one obvious thing to do is to increase the delay to something larger than most implementations default timeouts

- matches:
- path:
type: PathPrefix
value: /disable-request-timeout
backendRefs:
- name: infra-backend-v1
port: 8080
timeouts:
request: "0s"

Request: http.Request{Path: "/disable-request-timeout?delay=1s"},
Response: http.Response{StatusCode: 200},
Namespace: ns,

Note this applies to backend timeout tests as well

@robscott
Copy link
Member

So now I'm wondering what's the best way to exercise that timeouts are disabled.

I don't think you can. We had a similar discussion in the earlier days of the timeout GEP, it's ~impossible to write a test that confirms that timeouts are disabled. You could theoretically write a test that ran for a week, but how many dataplanes really support that? The general idea is that "disabling" a timeout in this case is really just setting the value to the max an implementation supports. In many cases this will be tied to how often the underlying infrastructure is updated or replaced.

@dprotaso
Copy link
Contributor Author

Yeah I agree with your points.

Maybe then better visibility is what's needed - #3012

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

2 participants