Subject: [quicwg/base-drafts] Application can reset stream or close connection even if no error occurs. (#3953)

From: Bence Béky <[email-masked]>
Date: Thu, 23 Jul 2020 07:48:44 -0700

The application may reset a stream, for example, when a browser tab is
closed or when the pushed resource is found in cache.  It might close
the connection when the application is closed.  These are not errors per
se, even though the term &quot;stream error&quot; and &quot;connection error&quot; is used
for these events, and they have an associated &quot;error code&quot;.
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/3953

-- Commit Summary --

  * Application can reset stream or close connection even if no error occurs.

-- File Changes --

    M draft-ietf-quic-http.md (8)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/3953.patch
https://github.com/quicwg/base-drafts/pull/3953.diff

-- 
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/pull/3953

---

From: Mike Bishop <[email-masked]>
Date: Thu, 23 Jul 2020 07:58:57 -0700

@MikeBishop approved this pull request.

Good point to emphasize.

> +the entire connection, see Sections 2.4 and 5.3 of {{QUIC-TRANSPORT}}.  The
+cause for this is referred to as a "stream error" or "connection error" (see

```suggestion
the entire connection; see Sections 2.4 and 5.3 of {{QUIC-TRANSPORT}}.  This
is referred to as a "stream error" or "connection error" (see
```

-- 
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/pull/3953#pullrequestreview-454222534

---

From: Bence Béky <[email-masked]>
Date: Thu, 23 Jul 2020 08:08:19 -0700

@bencebeky pushed 1 commit.

eaa072e9838695fb99d22b5107b38df4480d77ce  Update draft-ietf-quic-http.md

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3953/files/490ce450f147a7d3b937c176343130dbcff3be41..eaa072e9838695fb99d22b5107b38df4480d77ce

---

From: Martin Thomson <[email-masked]>
Date: Thu, 23 Jul 2020 08:18:33 -0700

@martinthomson approved this pull request.

-- 
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/pull/3953#pullrequestreview-454241734

---

From: ianswett <[email-masked]>
Date: Thu, 23 Jul 2020 08:29:39 -0700

@ianswett approved this pull request.

-- 
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/pull/3953#pullrequestreview-454252305

---

From: Kazuho Oku <[email-masked]>
Date: Thu, 23 Jul 2020 17:45:21 -0700

@kazuho approved this pull request.

-- 
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/pull/3953#pullrequestreview-454582471

---

From: Jana Iyengar <[email-masked]>
Date: Thu, 23 Jul 2020 18:18:01 -0700

@janaiyengar commented on this pull request.

> +the entire connection; see Sections 2.4 and 5.3 of {{QUIC-TRANSPORT}}.  This
+is referred to as a "stream error" or "connection error" (see
+Section 11 of {{QUIC-TRANSPORT}}) and has an associated error code, but does not
+necessarily have to be an error.  For example, a stream can be reset if the
+requested resource is no longer needed.

```suggestion
the entire connection; see Sections 2.4 and 5.3 of {{QUIC-TRANSPORT}}.  These
are referred to as a "stream error" or "connection error" (Section 11 of
{{QUIC-TRANSPORT}}) and have an associated error code, but do not
necessarily have to be errors.  For example, a stream can be reset if the
requested resource is no longer needed.
```

> +Section 11 of {{QUIC-TRANSPORT}}) and has an associated error code, but does not
+necessarily have to be an error.  For example, a stream can be reset if the

This phrasing is strange. What does it mean to not "be an error" when these are referred to as "stream error" or "connection 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/pull/3953#pullrequestreview-454589796

---

From: Bence Béky <[email-masked]>
Date: Fri, 24 Jul 2020 04:37:05 -0700

@bencebeky commented on this pull request.

I'm accepting your suggestion but also pluralizing "stream error" and "connection error" (which incidentally were already plural before this PR).

-- 
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/pull/3953#discussion_r460000264

---

From: Bence Béky <[email-masked]>
Date: Fri, 24 Jul 2020 04:37:31 -0700

44acd9f9f50151d9275edbf4c818b0d4b186fdf1  Jana's suggestion to pluralize errors.

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3953/files/eaa072e9838695fb99d22b5107b38df4480d77ce..44acd9f9f50151d9275edbf4c818b0d4b186fdf1

---

From: Bence Béky <[email-masked]>
Date: Fri, 24 Jul 2020 04:46:08 -0700

I agree with you.  My interpretation is that the source of strangeness is calling these stream errors and connection errors in the first place, and calling their reason codes error codes.  This way "error" becomes a technical term defined in this document, which does not align with my mental model of what an error is: entry found is cache or user closing a tab or navigating away is clearly not an error, but the specs treat it is a stream error and assign an error code to it.

Unfortunately I cannot think of a less weird way of phrasing it.  "Do not necessarily have to be abnormal events or protocol violations."?

-- 
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/pull/3953#discussion_r460003741

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 24 Jul 2020 04:51:37 -0700

@kazuho commented on this pull request.

While I agree that it sounds a bit strange, I think the current text is no more confusing as the NO_ERROR error code that we have in the transport draft.

-- 
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/pull/3953#discussion_r460006030

---

From: Mike Bishop <[email-masked]>
Date: Fri, 24 Jul 2020 13:21:38 -0700

@MikeBishop commented on this pull request.

> +have to be errors.  For example, a stream can be reset if the requested resource
+is no longer needed.

Given the comment thread, what about....
```suggestion
indicate a problem with the connection or either implementation.  For example, a
stream can be reset if the requested resource is no longer needed.
```

-- 
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/pull/3953#pullrequestreview-455162721

---

From: Jana Iyengar <[email-masked]>
Date: Fri, 24 Jul 2020 14:49:15 -0700

@janaiyengar approved this pull request.

one nit, and I like @MikeBishop's suggestion

> @@ -1595,9 +1595,11 @@ sent, and receipt MAY be treated as an error of type H3_FRAME_UNEXPECTED.
 # Error Handling {#errors}
 
 QUIC allows the application to abruptly terminate (reset) individual streams or
-the entire connection when an error is encountered.  These are referred to as
-"stream errors" or "connection errors" and are described in more detail in
-{{QUIC-TRANSPORT}}.
+the entire connection; see Sections 2.4 and 5.3 of {{QUIC-TRANSPORT}}.  These
+are referred to as "stream errors" or "connection errors" (see Section 11 of
+{{QUIC-TRANSPORT}}) and have an associated error code, but do not necessarily

```suggestion
{{QUIC-TRANSPORT}}) and have associated error codes, but do not necessarily
```

-- 
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/pull/3953#pullrequestreview-455202281

---

From: Bence Béky <[email-masked]>
Date: Mon, 27 Jul 2020 07:43:11 -0700

4fe8eaff739abe70b0d73244782d1b7436f1d652  Jana's suggestion to pluralize even more

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3953/files/44acd9f9f50151d9275edbf4c818b0d4b186fdf1..4fe8eaff739abe70b0d73244782d1b7436f1d652

---

From: Bence Béky <[email-masked]>
Date: Mon, 27 Jul 2020 07:43:27 -0700

5993c7b69f802d0b5b7dc66f9ff77ba88a2e25ec  Mike's wording of "indicate a problem"

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/3953/files/4fe8eaff739abe70b0d73244782d1b7436f1d652..5993c7b69f802d0b5b7dc66f9ff77ba88a2e25ec

---

From: Bence Béky <[email-masked]>
Date: Mon, 27 Jul 2020 07:43:44 -0700

+is no longer needed.

Thank you, I like this wording.

-- 
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/pull/3953#discussion_r460942720

---

From: Jana Iyengar <[email-masked]>
Date: Mon, 27 Jul 2020 08:27:38 -0700

-- 
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/pull/3953#pullrequestreview-455891182