Subject: [quicwg/base-drafts] Rationalize HTTP/3 stream creation errors (#2821)

From: Lucas Pardue <[email-masked]>
Date: Thu, 20 Jun 2019 09:03:22 -0700

There are presently several kinds of very similar error when creating streams:

1. HTTP_UNKNOWN_STREAM_TYPE MAY be used to tell a peer to STOP_SENDING on a stream type that is unknown by the local peer. It is **not** a connection error.
2. HTTP_WRONG_STREAM_COUNT MUST be used if a peer tries to open more than one critical stream (control, QPACK). Connection error.
3. HTTP_WRONG_STREAM_DIRECTION MUST be used if a client tries to open a push stream. More generally this could be used if a peer attempts to open a stream type that is not allowed to, but push is the only example today. Connection error.
4. HTTP_DUPLICATE_PUSH MUST be used if you open multiple push streams. 

The suggestion is to rationalize these into a single error code - HTTP_STREAM_CREATION_ERROR - that can be used in STOP_SENDING or CLOSE_CONNECTION.

The impact of merging _COUNT and _DIRECTION is minimal because implementations fundamentally have to open streams correctly in order to interop.

PS. The eagle eyes will notice I omitted the HTTP_DUPLICATE_PUSH creation error. This is on the chopping block in #2818. I class it differently because it is about parsing information **after** the stream type.

-- 
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/2821

---

From: Kazuho Oku <[email-masked]>
Date: Tue, 25 Jun 2019 21:56:43 -0700

Should a client respond with STREAM_CREATION_ERROR when it sees the server opening a bidirectional stream?

At the moment the designated error code is HTTP_GENERAL_PROTOCOL_ERROR, but STREAM_CREATION_ERROR might be a better fit.

Or if we are not going to use STREAM_CREATION_ERROR for server-initiated bidirectional streams, I think we should better rename it to UNIDIRECTIONAL_STREAM_CREATION_ERROR to avoid confusion.

-- 
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/2821#issuecomment-505718189

---

From: Lucas Pardue <[email-masked]>
Date: Wed, 26 Jun 2019 07:38:24 -0700

This relates to some earlier discussion on https://github.com/quicwg/base-drafts/issues/2711 and its now-merged PR https://github.com/quicwg/base-drafts/pull/2773.

We only recently added text to specify the use of HTTP_GENERAL_PROTOCOL_ERROR in this case, I think it fits to modify this to STREAM_CREATION_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/2821#issuecomment-505904672

---

From: Lucas Pardue <[email-masked]>
Date: Wed, 26 Jun 2019 07:45:20 -0700

Changed in https://github.com/quicwg/base-drafts/pull/2822/commits/89282f39dcc3283f87f6ccb76dc86abf9129327e

-- 
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/2821#issuecomment-505907655

---

From: Mike Bishop <[email-masked]>
Date: Thu, 27 Jun 2019 14:51:06 -0700

Closed #2821 via #2822.

-- 
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/2821#event-2445680531