Re: [quicwg/base-drafts] Firm up language around stream termination (#2888)

Mike Bishop <> Wed, 07 August 2019 20:03 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 87BEE1201C9 for <>; Wed, 7 Aug 2019 13:03:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Status: No, score=-8 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id cIVRSZagbcZg for <>; Wed, 7 Aug 2019 13:03:52 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 0D26D120152 for <>; Wed, 7 Aug 2019 13:03:52 -0700 (PDT)
Date: Wed, 07 Aug 2019 13:03:51 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1565208231; bh=+zPfjWxK5fR5FlMZYMspO41Lvbob8FqK9lOXk7wpcHU=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=DOj1ByjfL7r0Bll7kMwxuK0FmJ2RBgPn3VpK3Nk1WJuyD2Sd9D9L6L8FVdgmnXA11 vHygGhiZdx+b0k4AwWnq00Bavz60seDKucRtpMRIlBWRRl6UIATNOu5rabLIYgYf3g zhyfc4Cyyb3Bf4c2fi+sJrVXo8MOC5yYYlW/AZ9g=
From: Mike Bishop <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2888/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Firm up language around stream termination (#2888)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d4b2ea751c33_18053fc4d14cd968852cb"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 07 Aug 2019 20:03:54 -0000

MikeBishop approved this pull request.

> @@ -2601,12 +2601,17 @@ connection in a recoverable state, the endpoint can send a RESET_STREAM frame
 ({{frame-reset-stream}}) with an appropriate error code to terminate just the
 affected stream.
-RESET_STREAM MUST be instigated by the protocol using QUIC, either directly or
-through the receipt of a STOP_SENDING frame from a peer.  RESET_STREAM carries
-an application error code.  Resetting a stream without knowledge of the
-application protocol could cause the protocol to enter an unrecoverable state.
-Application protocols might require certain streams to be reliably delivered in
-order to guarantee consistent state between endpoints.
+RESET_STREAM MUST be instigated by the protocol using QUIC.  RESET_STREAM
+carries an application error code.  Only the application protocol is able to
+cause a stream to be terminated.  A local instance of the application protocol
+uses a direct API call and a remote instance uses the STOP_SENDING frame, which
+triggers an automatic RESET_STREAM.

The guidance at line 657 says:
> An endpoint SHOULD copy the error code from the STOP_SENDING frame to the
> RESET_STREAM frame it sends, but MAY use any application error code.  The
> endpoint that sends a STOP_SENDING frame MAY ignore the error code carried in
> any RESET_STREAM frame it receives.

HTTP allows in one instance for the server to use a different error code if the transport implementation supports that, but everything's fine if the transport just reflects the code before the local application knows about it.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: