Re: Design Issue: Merge RST_STREAM and GOAWAY into a single ERROR frame type

Patrick McManus <pmcmanus@mozilla.com> Fri, 03 May 2013 23:34 UTC

Return-Path: <ietf-http-wg-request@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 (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 46BF721F8D31 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 3 May 2013 16:34:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.976
X-Spam-Level:
X-Spam-Status: No, score=-9.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0fCiQAOAppZR for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 3 May 2013 16:34:31 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id D525221F8D27 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 3 May 2013 16:34:30 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1UYPTy-00037W-L9 for ietf-http-wg-dist@listhub.w3.org; Fri, 03 May 2013 23:33:42 +0000
Resent-Date: Fri, 03 May 2013 23:33:42 +0000
Resent-Message-Id: <E1UYPTy-00037W-L9@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <patrick.ducksong@gmail.com>) id 1UYPTo-00036m-4C for ietf-http-wg@listhub.w3.org; Fri, 03 May 2013 23:33:32 +0000
Received: from mail-oa0-f41.google.com ([209.85.219.41]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <patrick.ducksong@gmail.com>) id 1UYPTn-0005zu-5k for ietf-http-wg@w3.org; Fri, 03 May 2013 23:33:32 +0000
Received: by mail-oa0-f41.google.com with SMTP id k14so2173578oag.14 for <ietf-http-wg@w3.org>; Fri, 03 May 2013 16:33:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=Y8ho3S0JxpXiIst1dYQYiIPYmxw7CzJg+PZRQdhv/iA=; b=evZsJaZEao8o3QTloVA9NdF2LRYbXbuGgTqhAsJC+EB2BZB/LwGP9ICHB5KECg2S25 H2LgbwJiEGOYWBgJ3XdqLYR7Z9N89CxN3RkAZ0bocZRot2MMN43wVA3EaI18hcMC5TZX ReAlL3Ar2JfUBqTOXShxCRHff4gV4T0uSktH4UuLlQFfYvDwh/RjHb8NTgIeghzowL9t 8cZVK+xUhopGEqqUSkxvKvjH3WLlRkvaS5jXXTOz8b9T2DKEGli29Ad29zhtxGZZmL2C D6mefA2uJzGe+5yZYCQkloI/Ugf8A/BCpNVFYvta1HY5a8QnHUofJwgFyX5zlD77CgQi ahIg==
MIME-Version: 1.0
X-Received: by 10.182.233.227 with SMTP id tz3mr3523349obc.23.1367623985178; Fri, 03 May 2013 16:33:05 -0700 (PDT)
Sender: patrick.ducksong@gmail.com
Received: by 10.76.34.132 with HTTP; Fri, 3 May 2013 16:33:05 -0700 (PDT)
In-Reply-To: <CAP+FsNcN4OyqP=WkmsYUG+m9EHrTuELHx40n7S6wRb6F7L73FQ@mail.gmail.com>
References: <CABP7RbeJm-AKxU3qGxt2tCGrb0xCQL8njNyEToA7Ln9gS8hnTQ@mail.gmail.com> <CA+pLO_gWErCMv+j3pcmy+cTkt-hh2v6a7neeyDtg7HRN3x=Sgw@mail.gmail.com> <CABP7RbfJEwkMVum0HXei_mqvJ=pHd2G=jx_wz=sZzboi4ZMwzQ@mail.gmail.com> <CAA4WUYhfup_PM8s7P0PO_EcB8R-O6L32wX-zk73thwBHYHHtgA@mail.gmail.com> <CABP7RbcTbFxNj-qax1An0Qp7okWqvbt5MTXyHZTMn_fBKgx9Fw@mail.gmail.com> <CAA4WUYgYQbD1PmNMqPiQqR++0M7_vf4cWECNxk_i+s9S_kpQKw@mail.gmail.com> <CAP+FsNcN4OyqP=WkmsYUG+m9EHrTuELHx40n7S6wRb6F7L73FQ@mail.gmail.com>
Date: Fri, 03 May 2013 19:33:05 -0400
X-Google-Sender-Auth: kZoad21q0pWagZKFCPngvRmCSBE
Message-ID: <CAOdDvNoTW+7F1AxUVMDiEw-rOrtCBr3SJVSJw=2FAObzAeo6Mg@mail.gmail.com>
From: Patrick McManus <pmcmanus@mozilla.com>
To: Roberto Peon <grmocg@gmail.com>
Cc: "William Chan (陈智昌)" <willchan@chromium.org>, James M Snell <jasnell@gmail.com>, Jeff Pinner <jpinner@twitter.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a11c2029ad2afba04dbd8c5a8"
Received-SPF: pass client-ip=209.85.219.41; envelope-from=patrick.ducksong@gmail.com; helo=mail-oa0-f41.google.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-2.711, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1UYPTn-0005zu-5k 9a5165680f963590078618383e59f52a
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Design Issue: Merge RST_STREAM and GOAWAY into a single ERROR frame type
Archived-At: <http://www.w3.org/mid/CAOdDvNoTW+7F1AxUVMDiEw-rOrtCBr3SJVSJw=2FAObzAeo6Mg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17827
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>

I've found the current way to work well too.

otoh if there was a use case for rationale 3 (non-terminal session errors)
that seems like the one place where the new proposal is actually more
expressive. nothing comes to mind though.


On Fri, May 3, 2013 at 5:25 PM, Roberto Peon <grmocg@gmail.com> wrote:

> I also find the current way more obvious-- in wireshark and similar
> traces, it is far easier to pick out the different opcode type (which is
> typically rendered as the textual name of the opcode) as opposed to the
> numeric value in some field.
>
> -=R
>
>
> On Fri, May 3, 2013 at 2:12 PM, William Chan (陈智昌) <willchan@chromium.org>wrote:
>
>> Sorry, my implication is that I don't see any objective determination of
>> what's simpler here, just subjective views of which many people can have an
>> opinion. But if there's consensus on doing this, then by all means, let's
>> do it. I for one disagree and find the current way simpler :)
>>
>>
>> On Fri, May 3, 2013 at 6:08 PM, James M Snell <jasnell@gmail.com> wrote:
>>
>>> There is no bikeshedding going on at all. I made the motivation for
>>> this clear up front: it's a simplification that addresses three
>>> specific items. Note: there is an existing editorial note in the
>>> existing draft that calls out the fact that we have no non-terminal
>>> method of communicating non-stream related errors. If we can address
>>> that item while also simplifying things a bit, then fantastic.
>>>
>>> On Fri, May 3, 2013 at 2:01 PM, William Chan (陈智昌)
>>> <willchan@chromium.org> wrote:
>>> > This is a thread ripe for bikeshedding. Is there any major issue worth
>>> > solving?
>>> >
>>> > If we're going to paint our bike sheds, my take is keep whatever color
>>> the
>>> > bike shed already has unless it really offends a number of people.
>>> >
>>> >
>>> > On Fri, May 3, 2013 at 5:53 PM, James M Snell <jasnell@gmail.com>
>>> wrote:
>>> >>
>>> >> Speaking candidly, if we find ourselves requiring more than 8 boolean
>>> >> flags on an error frame we should all just quit and go home.
>>> >>
>>> >> On Fri, May 3, 2013 at 1:34 PM, Jeff Pinner <jpinner@twitter.com>
>>> wrote:
>>> >> > IIRC, when this was brought up at the last F2F the rational for NOT
>>> >> > doing
>>> >> > this was that frame types were cheaper than flags (256 frame types,
>>> 8
>>> >> > flags).
>>> >> >
>>> >> > That being said I think we should consider combining them :)
>>> >> >
>>> >> >
>>> >> > On Fri, May 3, 2013 at 1:04 PM, James M Snell <jasnell@gmail.com>
>>> wrote:
>>> >> >>
>>> >> >> As a simplification, I'd like to suggest that we merge the
>>> RST_STREAM
>>> >> >> and GOAWAY frames into a single ERROR frame with the following
>>> >> >> definition:
>>> >> >>
>>> >> >>  0                   1                   2                   3
>>> >> >>  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>>> >> >> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>> >> >> |                      Error Code (32)                          |
>>> >> >> +---------------------------------------------------------------+
>>> >> >> |X|                  Last-Stream-ID (31)                        |
>>> >> >> +-+-------------------------------------------------------------+
>>> >> >>
>>> >> >> (note that this flips the field order from the GOAWAY frame)
>>> >> >>
>>> >> >> A frame-specific GOAWAY flag bit (0x2) would be defined for the
>>> frame,
>>> >> >> and the Last-Stream-ID field would only be included in the frame
>>> data
>>> >> >> if this flag was set.
>>> >> >>
>>> >> >> This does a couple of things for us:
>>> >> >>
>>> >> >> 1. It simplifies the error handling and reduces the number of core
>>> >> >> frame
>>> >> >> types.
>>> >> >> 2. It allows us to terminate a stream and terminate the session in
>>> a
>>> >> >> single frame if necessary
>>> >> >> 3. It gives us a way of reporting non-terminal session errors
>>> >> >> (currently RST_STREAM is forbidden to use stream id #0 and GOAWAY
>>> is
>>> >> >> always terminal).
>>> >> >>
>>> >> >
>>> >>
>>> >
>>>
>>
>>
>