GOAWAY clarification

Martin Thomson <martin.thomson@gmail.com> Sat, 21 March 2015 05:58 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com []) by ietfa.amsl.com (Postfix) with ESMTP id 61A7F1A909F for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 20 Mar 2015 22:58:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.012
X-Spam-Status: No, score=-7.012 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id UWgSgajM6HCs for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 20 Mar 2015 22:58:20 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org []) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C256E1A909E for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 20 Mar 2015 22:58:20 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1YZCLy-0003M5-QA for ietf-http-wg-dist@listhub.w3.org; Sat, 21 Mar 2015 05:53:46 +0000
Resent-Date: Sat, 21 Mar 2015 05:53:46 +0000
Resent-Message-Id: <E1YZCLy-0003M5-QA@frink.w3.org>
Received: from lisa.w3.org ([]) by frink.w3.org with esmtp (Exim 4.80) (envelope-from <martin.thomson@gmail.com>) id 1YZCLo-0003LK-6l for ietf-http-wg@listhub.w3.org; Sat, 21 Mar 2015 05:53:36 +0000
Received: from mail-oi0-f50.google.com ([]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <martin.thomson@gmail.com>) id 1YZCLn-0006rM-96 for ietf-http-wg@w3.org; Sat, 21 Mar 2015 05:53:36 +0000
Received: by oifl3 with SMTP id l3so76871282oif.0 for <ietf-http-wg@w3.org>; Fri, 20 Mar 2015 22:53:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=SJAEQY1V896WGQd74iaRx0bS7fmZRxJP3QiR/5VucXE=; b=skNXqPK77bBBFmGsYIeZw1t7ONnvOf7Yda/yRHDWcCnHVuyWb8i8E2vqPmIN3Hjs6f mDOnACwooSIY1peHmU47ntW9zyNgTl0vSgB9pWTG8wacJFbAZ8G1AmkYKrAgnWibTB6Z uja/PbnC61NX8GEeFoI0YHs9dp3AQ5fQDSnB5pqWT09TJvMjI3HNbUq20aAZryLZiLnB Nc71I67vtSBIJFZHjeR2X8cAWuqclnLWP7LFDaftc6M05n2x7JX0fbVnEvzl+dcgz0nl JgrsXcCDrhdmJDOrE3FAVeF8aUP5hZgKN5mKmQFV44gdOUhNPzC1NQn2GIN/shbgDeze 2dlg==
MIME-Version: 1.0
X-Received: by with SMTP id k2mr55214398oey.65.1426917189552; Fri, 20 Mar 2015 22:53:09 -0700 (PDT)
Received: by with HTTP; Fri, 20 Mar 2015 22:53:09 -0700 (PDT)
Date: Fri, 20 Mar 2015 22:53:09 -0700
Message-ID: <CABkgnnWrZpNjLnQ2mn0YnoU-e1oArWVDmBTqiX=cDAeeA+ZZ+Q@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: text/plain; charset="UTF-8"
Received-SPF: pass client-ip=; envelope-from=martin.thomson@gmail.com; helo=mail-oi0-f50.google.com
X-W3C-Hub-Spam-Status: No, score=-6.4
X-W3C-Hub-Spam-Report: AWL=0.398, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, W3C_AA=-1, W3C_IRA=-1, W3C_IRR=-3, W3C_WL=-1
X-W3C-Scan-Sig: lisa.w3.org 1YZCLn-0006rM-96 fc96aacf2865addcf8aecd77c2378e27
X-Original-To: ietf-http-wg@w3.org
Subject: GOAWAY clarification
Archived-At: <http://www.w3.org/mid/CABkgnnWrZpNjLnQ2mn0YnoU-e1oArWVDmBTqiX=cDAeeA+ZZ+Q@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/29001
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

This seems right to me...

@ https://github.com/http2/http2-spec/issues/731
We are working on a HTTP/2 library and we are a bit confused and we
would like to get it right. That's why I am kindly asking for you to
answer the following question:

Is it correct that after a sender sent a GOAWAY frame with some last
stream identifier to a receiver, the sender may still open new
streams, even with stream identifiers higher than the last stream
identifier sent in the GOAWAY frame? That is the GOAWAY frame and the
last stream identifier only limit the ability of the receiver?

If this is correct, and I believe it is, then the I find the following
sentence in the first paragraph at 6.8 GOAWAY confusing.

    Once sent, the sender will ignore frames sent on any new streams
with identifiers higher than the included last stream identifier.

In my opinion it should say something of the like

    Once sent, the sender will ignore frames sent on any new streams
created by the receiver with identifiers higher than the included last
stream identifier.

Thank you very much!

After all, the purpose is to create a synchronization point for
streams created by a peer, marking some set of them as safe to retry.
There is little value in delineating streams created by the sender of

That has some ramifications, that I'm sure everyone is already aware
of: a server that has decided to process a client frame might
reasonably initiate server push after sending GOAWAY.  Equally, a
client might hang around after GOAWAY and even make more requests, but
server pushes would be "ignored".

Of course, given that interpretation GOAWAY from a client could be
seen as equivalent to SETTINGS_ENABLE_PUSH=0, depending on the value
of the last stream ID provided, that is.

I'm not sure that these are new ramifications.  The question is
whether we want to somehow prevent any aspect of this interpretation.
At this extremely late stage in the process that would require
something extraordinary, but I offer the opportunity nonetheless.