Subject: [quicwg/base-drafts] Explicitly define H3_REQUEST_FOO as stream error (#4766)

From: Kazu Yamamoto <[email-masked]>
Date: Tue, 19 Jan 2021 16:26:53 -0800

Sec 4.1 and 4.1.2 do not explicitly define `H3_REQUEST_REJECTED`, `H3_REQUEST_CANCELLED`, `H3_REQUEST_INCOMPLETE` as stream errors. A.4.1 says that `H3_REQUEST_REJECTED` is a stream error. It would be nice if they are explicitly defined as stream errors in Sec 4.1 and 4.1.2.

Also, it would be nice if each error code is categorized to either a connection error or a stream error in Table 4.

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

---

From: Lucas Pardue <[email-masked]>
Date: Tue, 19 Jan 2021 16:42:15 -0800

Commenting as an individual.

The error code space is shared between connection and streams. The action associated with a stream error or connection error cause QUIC transport frames to be emitted, which can use a code.

H3 inherits H2's design philosophy that endpoints can generate a connection error at will. So while there are specific cases that describe "treat X as stream error foo", endpoints are also allowed to "treat X as connection error foo".

Constraining the error codes to different uses has a certain appeal. But then what do we say the the receiver of an error code of the wrong type should do? Generate its own error? I think this has come up a couple of times during H3 drafts but I'm satisfied that the flexibility we have today is about the best we can do. 

-- 
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/4766#issuecomment-763244518

---

From: Lucas Pardue <[email-masked]>
Date: Tue, 19 Jan 2021 16:45:09 -0800

I also think "stream error" and "abort a stream" are unique and consistent terms used through the document. But I'll let Mike spec to that point with his editor hat. 

-- 
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/4766#issuecomment-763245624

---

From: Kazu Yamamoto <[email-masked]>
Date: Tue, 19 Jan 2021 17:12:58 -0800

Even though categorization is not reasonable, Sec 4.1, for instance, should say like "the server SHOULD abort its response and treat as a stream error of type H3_REQUEST_INCOMPLETE".

-- 
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/4766#issuecomment-763255404

---

From: Lucas Pardue <[email-masked]>
Date: Tue, 19 Jan 2021 17:36:57 -0800

"Abort" is a defined term in section 2.2. I personally don't see much clarity in the proposal, it threatens to add inconsistency to other places where streams are aborted due to application decisions rather than a 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/4766#issuecomment-763263941

---

From: Kazu Yamamoto <[email-masked]>
Date: Tue, 19 Jan 2021 22:13:10 -0800

My example proposal is to replace "the server SHOULD abort its response with the error code H3_REQUEST_INCOMPLETE" with "the server SHOULD abort its response and treat as a stream error of type H3_REQUEST_INCOMPLETE" in Sec 4.1. I don't understand why this would introduce inconsistency. 

-- 
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/4766#issuecomment-763362822

---

From: Kazuho Oku <[email-masked]>
Date: Wed, 20 Jan 2021 05:40:13 -0800

@kazu-yamamoto For that particular instance, I think it is not unreasonable to change the text from "SHOULD abort its response with the error code ..." to "SHOULD abort its response *stream* with the error code ...", as the latter is the pattern that we use.

Though I am not sure if such change is necessary; I tend to agree with @LPardue that the sentence is already clear; "abort" is a defined word and use of "response" implies a stream.

-- 
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/4766#issuecomment-763611797

---

From: Lucas Pardue <[email-masked]>
Date: Wed, 20 Jan 2021 06:54:19 -0800

WRT inconsistency, the editor would need to sweep for all instances of abort and reason about whether they need additional text or not. And there's a risk that someone later on picks up on an inconsistency of usage because they didn't appreciate the nuance. Since adding more detail after an instance of `abort` seems duplicative, I would favour not adding any more.

-- 
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/4766#issuecomment-763670336

---

From: Mike Bishop <[email-masked]>
Date: Wed, 20 Jan 2021 07:06:30 -0800

I'm okay with @kazuhu's addition of "stream" since abort is defined as a stream operation.  I don't think we need to separate out "abort" and "stream error" as separate statements, because abort already describes what needs to be done.

-- 
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/4766#issuecomment-763689046

---

From: Kazu Yamamoto <[email-masked]>
Date: Wed, 20 Jan 2021 15:14:06 -0800

If I was worried too much, no change is necessary. One alternative approach is to add a sentence like "errors in this section are stream errors" in the beginning of Sec 4.

-- 
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/4766#issuecomment-764015459

---

From: Mike Bishop <[email-masked]>
Date: Mon, 25 Jan 2021 12:54:03 -0800

Closed #4766 via #4814.

-- 
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/4766#event-4247666130