Re: [quicwg/base-drafts] What should the receiver do when the peer closes a unidirectional stream before providing the stream type? (#2331)
MikkelFJ <notifications@github.com> Sat, 12 January 2019 09:59 UTC
Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0F041130DF1 for <quic-issues@ietfa.amsl.com>; Sat, 12 Jan 2019 01:59:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -12.553
X-Spam-Level:
X-Spam-Status: No, score=-12.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, 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_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3n5aufvCOs0k for <quic-issues@ietfa.amsl.com>; Sat, 12 Jan 2019 01:59:48 -0800 (PST)
Received: from out-2.smtp.github.com (out-2.smtp.github.com [192.30.252.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 239D912D4E9 for <quic-issues@ietf.org>; Sat, 12 Jan 2019 01:59:48 -0800 (PST)
Date: Sat, 12 Jan 2019 01:59:47 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1547287187; bh=P2CboE5IeKwsGK8jQi/6SPHx1kPTfuO2kqBXHfNbAnE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=kQBWygY8ds5mqRPCb5H56IjKooIGq4oKCBcGiLzKFfO/RVjREA1fGa69JfsVsFKBz bQUo2epMkvPtVZGD6IFF+mAZ95tvQ90dSmjKDcNoT9SnXnb0HrvGYOW8Z5tRURZ6ou 7zjkFhrGe1hag3A7/BFSAfYIlP18wTvyQEOauZes=
From: MikkelFJ <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab412a5b473b50d944065a8b4d5de995d0c4833e7592cf0000000118517c9392a169ce17c1011d@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2331/453734970@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2331@github.com>
References: <quicwg/base-drafts/issues/2331@github.com>
Subject: Re: [quicwg/base-drafts] What should the receiver do when the peer closes a unidirectional stream before providing the stream type? (#2331)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c39ba938dd3_5f713fa8fc2d45bc61168"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: mikkelfj
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/nxZIwQDbreOzNHUlFz1WKkc4tF4>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 12 Jan 2019 09:59:50 -0000
(It's now RESET_STREAM) You can close normally (FIN), or with RESET_STREAM. In both cases there is a final size. The difference is that RESET_STREAM does not require unsent or lost data to be (re)transmitted. (I'm sure you are aware of all this). If you get a RESET_STREAM and you do not have the stream type, there is no point in waiting for it. If you get a FIN without a type and a final size >= 1 but have not received the first byte, you can choose to wait for it. You probably should - but an implementation could make a mistake here assuming an error if an internal struct says type = type_missing. I take it you issue is intended for RESET only, but you were not clear on that. Now, further analysis: Assume you send a non critical stream with a type, and some other data. Then decide to RESET_STREAM in a later packet. This later packet overtakes the previous packet holding the type. Since the receiver cannot assume that the type was ever sent or will ever be received, it must act on what it knows. Hence, if it treats this as a critical error, streams can never be reset. Consequently, either streams should never be reset, or a reset without a type should not be treated as critical. I.e. a stream only exists for real once a type is positively known. -- 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/issues/2331#issuecomment-453734970
- [quicwg/base-drafts] What should the receiver do … Kazuho Oku
- Re: [quicwg/base-drafts] What should the receiver… MikkelFJ
- Re: [quicwg/base-drafts] What should the receiver… Kazuho Oku
- Re: [quicwg/base-drafts] What should the receiver… MikkelFJ
- Re: [quicwg/base-drafts] What should the receiver… MikkelFJ
- Re: [quicwg/base-drafts] What should the receiver… Lucas Pardue
- Re: [quicwg/base-drafts] What should the receiver… MikkelFJ
- Re: [quicwg/base-drafts] What should the receiver… Lucas Pardue
- Re: [quicwg/base-drafts] What should the receiver… MikkelFJ
- Re: [quicwg/base-drafts] What should the receiver… Kazuho Oku
- Re: [quicwg/base-drafts] What should the receiver… Lucas Pardue
- Re: [quicwg/base-drafts] What should the receiver… Kazuho Oku
- Re: [quicwg/base-drafts] What should the receiver… Subodh Iyengar
- Re: [quicwg/base-drafts] What should the receiver… Kazuho Oku
- Re: [quicwg/base-drafts] What should the receiver… Mike Bishop