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

Make 408's not result in orphan mitigation #456

Merged
merged 1 commit into from
Mar 13, 2018

Conversation

duglin
Copy link
Contributor

@duglin duglin commented Feb 15, 2018

/cc @nilebox

Closes #449

Signed-off-by: Doug Davis dug@us.ibm.com

@cfdreddbot
Copy link

Hey duglin!

Thanks for submitting this pull request! I'm here to inform the recipients of the pull request that you and the commit authors have already signed the CLA.

@duglin
Copy link
Contributor Author

duglin commented Feb 15, 2018

While we could technically merge the two 4xx lines, I think its important to call out the 408 by itself so we can be clear that this is a "client side" timeout and not a "server side" one - which are very very different w.r.t. orphan mitigation

@nilebox
Copy link

nilebox commented Feb 19, 2018

TBH I would prefer to remove the special mention of 408 completely, as it's not actually special as we discussed in #449. All 4xx are client side errors, and there are no exceptions in regards to orphan mitigation.
We also don't mention the 504 Gateway Timeout explicitly anywhere apart from 5xx, for example.

@duglin
Copy link
Contributor Author

duglin commented Feb 19, 2018

@nilebox my original version of the PR did merge them and within 5 minutes I got a ping about it because the distinction between client-side vs server-side timeout wasn't clear - so I added it back in, just for the sake of clarity. We don't need to call-out 504 because it results in orphan mitigation which is what most people would expect from a "timeout".

@nilebox
Copy link

nilebox commented Feb 19, 2018

@duglin I see your concern, but the distinction between client-side and server-side errors is an HTTP standard's problem, OSB doesn't bring anything additional there. Furthemore, HTTP standard makes the distinction very clear - 4xx are client-side errors, and 5xx are server-side errors. If we needed to alter this distinction (which OSB spec currently does), it would obviously require a special wording in the OSB spec. But since we don't (anymore), I don't see the value of keeping 408 separate from 4xx.

@@ -1430,7 +1430,7 @@ Platforms SHOULD initiate orphan mitigation in the following scenarios:
| 201 | Success | No |
| 201 with malformed response | Failure | Yes |
| All other 2xx | Failure | Yes |
| 408 | Timeout failure | Yes |
| 408 | Client timeout failure (request not received at the server) | No |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand the usage of 'server' here. A client could get a 408 by having it's local timeout setting very small. Or you could be talking to a broker proxy and the second connection could timeout. Both cases could result in orphans. I am not sure how a broker author could prevent their implementation from returning a 408 AND/OR make sure that orphans are not possible.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps "receiver" would be better, but in the other cases you mentioned I'm not sure the Platform would see a 408. As long as the message makes it to the next hop I don't think 408 would be appropriate. And I would think that hop before that one would return a 5xx since from its POV it did receive the entire request so it can't be a 408. Right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking up 408 in the rfc...

Ok I agree. In this case, server is fine with me.

@n3wscott
Copy link
Contributor

n3wscott commented Feb 21, 2018

LGTM

Approved with PullApprove

@duglin
Copy link
Contributor Author

duglin commented Feb 27, 2018

reviews needed

@fmui
Copy link
Member

fmui commented Feb 27, 2018

LGTM

Approved with PullApprove

1 similar comment
@mattmcneeney
Copy link
Contributor

mattmcneeney commented Feb 27, 2018

LGTM

Approved with PullApprove

Signed-off-by: Doug Davis <dug@us.ibm.com>
@zrob
Copy link
Member

zrob commented Mar 6, 2018

lgtm

Approved with PullApprove

@n3wscott
Copy link
Contributor

n3wscott commented Mar 6, 2018

LGTM

Approved with PullApprove

@duglin
Copy link
Contributor Author

duglin commented Mar 12, 2018

2 more reviews needed
@fmui @vaikas-google @mattmcneeney

@fmui
Copy link
Member

fmui commented Mar 13, 2018

LGTM

Approved with PullApprove

1 similar comment
@vaikas
Copy link
Contributor

vaikas commented Mar 13, 2018

LGTM

Approved with PullApprove

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

Successfully merging this pull request may close these issues.

None yet

8 participants