Subject: [quicwg/base-drafts] Handling RESET_STREAM and STOP_SENDING with invalid error codes (#2816)

From: Lucas Pardue <[email-masked]>
Date: Wed, 19 Jun 2019 07:46:33 -0700

The HTTP/3 spec is a little light on detail about processing an error code that should have never been sent. At @MikeBishop's suggestion, this issue is scoped to discussion of HTTP/3 stream errors:

> If a stream sees a RESET/STOP_SENDING with an error code that a) should only have originated from your side, or b) can only be a connection error, what do you do?

Example a) a client receives a STOP_SENDING with HTTP_REQUEST_CANCELLED
Example b) a server receives a RESET_STREAM with HTTP_LIMIT_EXCEEDED

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2816

---

From: Mike Bishop <[email-masked]>
Date: Wed, 19 Jun 2019 11:17:34 -0700

I'm mostly inclined to treat this with the same fatalism as an invalid code in an APPLICATION_CLOSE code that makes no sense.  The stream is gone, regardless of the error code.  If it was a critical stream, then CLOSED_CRITICAL_STREAM; otherwise, perhaps a MAY GENERAL_PROTOCOL_ERROR?

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2816#issuecomment-503673056

---

From: Martin Thomson <[email-masked]>
Date: Tue, 25 Jun 2019 16:55:03 -0700

I agree with @MikeBishop.  The error code doesn't matter.  What matters is how you handle it.  Error codes with no specific handling are fine; error codes with special handling can be ignored.

The question of what to do with critical streams is separable.  Don't make things worse by coupling the two concepts.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2816#issuecomment-505664349

---

From: Mike Bishop <[email-masked]>
Date: Wed, 26 Jun 2019 09:38:29 -0700

Oh, totally separable.  But then you'd then have two competing permissions-to-blow up -- because the critical stream close (regardless of error code) and because a stream closed with an invalid error code (regardless of which stream).  And I don't think it matters which reason you have to blow up or what the resulting error is.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/issues/2816#issuecomment-505952716