Subject: [quicwg/base-drafts] Explicitly suggest FIN or RST_STREAM (#1893)

From: martinduke <[email-masked]>
Date: Fri, 19 Oct 2018 10:31:06 -0700

For issue #1878. I was apparently the only one confused, but since this is different from HTTP/2 it may be good to make it crystal clear.
You can view, comment on, or merge this pull request online at:

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

-- Commit Summary --

  * Explicitly suggest FIN or RST_STREAM

-- File Changes --

    M draft-ietf-quic-transport.md (13)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/1893.patch
https://github.com/quicwg/base-drafts/pull/1893.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/1893

---

From: MikkelFJ <[email-masked]>
Date: Fri, 19 Oct 2018 11:08:39 -0700

mikkelfj commented on this pull request.

> @@ -803,12 +803,13 @@ frame, and the receiver MUST use the final offset to account for all bytes sent
 on the stream in its connection level flow controller.
 
 RST_STREAM terminates one direction of a stream abruptly.  Whether any action or
-response can or should be taken on the data already received is an
-application-specific issue, but it will often be the case that upon receipt of a
-RST_STREAM an endpoint will choose to stop sending data in its own direction. If
-the sender of a RST_STREAM wishes to explicitly state that no future data will
-be processed, that endpoint MAY send a STOP_SENDING frame at the same time.
-
+response can or should be taken on the data already received is an application-
+specific issue. It will often be the case that upon receipt of a RST_STREAM on a
+bidirectional stream, an endpoint will choose to stop sending data to the peer
+on that stream. In this case, it SHOULD send a FIN or RST_STREAM for that
+stream to close the peer's receive stream state. If the sender of a RST_STREAM

```suggestion
stream to close the peer's receive stream state. Alternatively an endpoint can choose to continue sending data in its own direction. If the sender of a RST_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/pull/1893#pullrequestreview-166637249

---

From: martinduke <[email-masked]>
Date: Fri, 19 Oct 2018 18:18:32 +0000 (UTC)

@martinduke pushed 1 commit.

e6d9bbe  mikkelfj's comments

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1893/files/c0198331387dc3e7705fe2992cd266d71588c161..e6d9bbec399e08b5c1ca33b518fb8f25bc79ee61

---

From: Ryan Hamilton <[email-masked]>
Date: Fri, 19 Oct 2018 15:31:03 -0700

RyanAtGoogle commented on this pull request.

Is it worth commenting that the receiver of the RST_STREAM frame MUST eventually send a FIN or a RST_STREAM in order for the stream to close completely?

-- 
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/1893#pullrequestreview-166715237

---

From: Marten Seemann <[email-masked]>
Date: Fri, 19 Oct 2018 15:51:58 -0700

@RyanAtGoogle That applies to every stream, not just streams that a RST_STREAM was received for, doesn't it?

-- 
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/1893#issuecomment-431521006

---

From: martinduke <[email-masked]>
Date: Fri, 19 Oct 2018 22:59:05 +0000 (UTC)

1b8a9c6  Fix line that was too long

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1893/files/e6d9bbec399e08b5c1ca33b518fb8f25bc79ee61..1b8a9c6000f94c1eadcdfff535e4146fff80b39c

---

From: Ryan Hamilton <[email-masked]>
Date: Fri, 19 Oct 2018 16:10:15 -0700

@marten-seemann Yes, definitely. But I understood that the point of this CL was to help clarify the QUIC RST_STREAM behavior which is different from HTTP/2. Since the proposed text says, SHOULD, I wondered if some reader might not realize that eventually they MUST. But I'm happy with this PR as is if nobody else is concerned :)

-- 
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/1893#issuecomment-431523903

---

From: Kazuho Oku <[email-masked]>
Date: Fri, 19 Oct 2018 16:53:14 -0700

I agree with @RyanAtGoogle that the proposed text (quoted below) is confusing.
> It will often be the case that upon receipt of a RST_STREAM on a bidirectional stream, an endpoint will choose to stop sending data to the peer on that stream. If so, it SHOULD send a FIN or RST_STREAM for that stream to close the peer's receive stream state.

My view is that the text can be interpreted as allowing an endpoint to stop sending data on that stream without sending FIN or RST_STREAM.

I think that it would be beneficial to either avoid use of SHOULD (by for example replacing it to "needs to"), or change it to MUST.

-- 
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/1893#issuecomment-431529441

---

From: martinduke <[email-masked]>
Date: Sat, 20 Oct 2018 20:33:53 -0700

755e329  Rewrote to address discussion

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1893/files/1b8a9c6000f94c1eadcdfff535e4146fff80b39c..755e32942b9db5d45ab08600171dbf9dde41ced7

---

From: ianswett <[email-masked]>
Date: Sun, 21 Oct 2018 11:07:21 -0700

ianswett commented on this pull request.

> @@ -803,12 +803,14 @@ frame, and the receiver MUST use the final offset to account for all bytes sent
 
+specific issue.

nit: I'd suggest "decision" or "choice" instead of issue.  Or maybe say "is application-specific."?

-- 
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/1893#pullrequestreview-166795040

---

From: ianswett <[email-masked]>
Date: Sun, 21 Oct 2018 11:08:51 -0700

RST_STREAM terminates one direction of a stream abruptly.  Whether any action or
-response can or should be taken on the data already received is an
-application-specific issue, but it will often be the case that upon receipt of a
-RST_STREAM an endpoint will choose to stop sending data in its own direction. If
-the sender of a RST_STREAM wishes to explicitly state that no future data will
-be processed, that endpoint MAY send a STOP_SENDING frame at the same time.
-
+response can or should be taken on the data already received is an application-
+specific issue.
+
+For a bidirectional stream, RST_STREAM has no effect on data flow in the
+opposite direction. Both endpoints MUST maintain state for that direction until
+that direction enters a terminal state, or either side sends CONNECTION_CLOSE or
+APP_CLOSE. The RST_STREAM sender MAY also send a STOP_SENDING frame to encourage

I think this last sentence might be better as the second sentence.  I was a bit confused about whether you meant connection on stream termination when I first read it.

-- 
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/1893#pullrequestreview-166795081

---

From: MikkelFJ <[email-masked]>
Date: Sun, 21 Oct 2018 11:09:54 -0700

is application specific.

-- 
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/1893#discussion_r226872361

---

From: Martin Thomson <[email-masked]>
Date: Sun, 21 Oct 2018 15:55:50 -0700

@martinthomson pushed 1 commit.

13945f9  Tweak it

-- 
You are receiving this because you are subscribed to this thread.
View it on GitHub:
https://github.com/quicwg/base-drafts/pull/1893/files/755e32942b9db5d45ab08600171dbf9dde41ced7..13945f96c4f7b063e92c989707f75f4adee85d7e

---

From: Martin Thomson <[email-masked]>
Date: Sun, 21 Oct 2018 16:01:24 -0700

Merged manually.

-- 
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/1893#issuecomment-431711769

---

From: Martin Thomson <[email-masked]>
Date: Sun, 21 Oct 2018 16:01:49 -0700

Closed #1893.

-- 
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/1893#event-1916876967