-
Notifications
You must be signed in to change notification settings - Fork 378
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
Return HTTP response to RX_OVERFLOW #4207
base: master
Are you sure you want to change the base?
Conversation
This flag will allow toggling whether Varnish will, in case of an RX_OVERFLOW happening, silently close the connection as was done before or send an HTTP response code before closing the connection.
Adds a Varnish parameter for which HTTP response code should be sent in case of a request parameter overflow.
924075c
to
c9f22bf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for writing a better PR description and better commit messages ;)
I am generally 👍🏽 , and only have this nit-pick: Instead of having a feature flag and a parameter, can't we just just an invalid status code like 0 with req_overflow_status
to mean "disable" (= close connection)?
bugwash: we would appreciate some more research regarding which scenarios would benefit from a similar mechanism. Also, the argument has been made that, once we send a response at all, we might as well do so through @cartoush volunteered to spend some time on researching these questions, thank you! |
Sorry for the delay, I did some thinking on that and I think one could argue all cases where an error causes a connection to close silently could benefit from that.
and in order to handle the case here we would have something like:
I think the the whole |
Resolves #2735
Before this PR, Varnish would silently close the connection to a client that triggered an RX_OVERFLOW (too long URI), this PR allows configuring Varnish to respond to RX_OVERFLOW with a minimal HTTP response that will contain a chosen HTTP code instead.
Its done by adding a new feature flag in order to enable the feature and a new parameter in order to set the HTTP code that will be sent in the response.