Re: [quicwg/base-drafts] Clarify when a dynamic table entry can be evicted. (#2261)

Martin Thomson <notifications@github.com> Wed, 23 January 2019 22:10 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 E2CF5130EF2 for <quic-issues@ietfa.amsl.com>; Wed, 23 Jan 2019 14:10:18 -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 XOb_SwCsT17g for <quic-issues@ietfa.amsl.com>; Wed, 23 Jan 2019 14:10:16 -0800 (PST)
Received: from out-7.smtp.github.com (out-7.smtp.github.com [192.30.252.198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 53592130F39 for <quic-issues@ietf.org>; Wed, 23 Jan 2019 14:10:16 -0800 (PST)
Date: Wed, 23 Jan 2019 14:10:15 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1548281415; bh=mR+1bv2mJ5hGLfcUTcME5jxSg7RR6kg6hE87mK6bU8U=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=yBYNiG+uQ2zonGt3C/sHMEFxphRqSv9HfJgbk38BDbFEjlp+fMedJLbPWiewp+1wh NoJJ6NbHDkfSMlrStxtCcQhXYlZBX8v37J5wxs3xmIWYWnBhWXpOZT+R1YLSHFdo5x 1CCK5vO7UI15+SvMNpkmWjmq2PO8PUzyWZQagwWc=
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab2ee29b0264ac4b4e8781dfb41735e4529230344192cf000000011860a84792a169ce177f2f28@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2261/review/195765011@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2261@github.com>
References: <quicwg/base-drafts/pull/2261@github.com>
Subject: Re: [quicwg/base-drafts] Clarify when a dynamic table entry can be evicted. (#2261)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c48e6473e04e_7db33ff3ef4d45b8104529"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
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/OZrlKoCqze4cdadfuEKUGgY_rBA>
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: Wed, 23 Jan 2019 22:10:19 -0000

martinthomson approved this pull request.

Some stylistic changes as suggestions (damn I wish GitHub supported multi-line suggestions), but this is generally much better.

> @@ -210,10 +210,18 @@ acknowledged by the decoder.
 
 ### Blocked Dynamic Table Insertions {#blocked-insertion}
 
+The encoder considers a dynamic table entry to be blocking if it has not yet
+received acknowledgement of insertion of the entry, or if it has not yet
+received acknowledgement of all references to the entry.  Note that a dynamic
+table entry that has never been referenced can still be blocking.  Also note

This "Note that" sentence is redundant.

> @@ -210,10 +210,18 @@ acknowledged by the decoder.
 
 ### Blocked Dynamic Table Insertions {#blocked-insertion}
 
+The encoder considers a dynamic table entry to be blocking if it has not yet
+received acknowledgement of insertion of the entry, or if it has not yet
+received acknowledgement of all references to the entry.  Note that a dynamic
+table entry that has never been referenced can still be blocking.  Also note
+that a blocking entry cannot be evicted, which is unrelated to a blocked stream,

Suggest: 
```
A blocking entry cannot be evicted until its insertion has been acknowledged and there are no unacknowledged references to the entry outstanding.
--new paragraph
Note:
: A blocking entry is unrelated to a blocked stream, where a decoder cannot decode a stream as a result of references to entries that are not yet available.  An encoder that uses the dynamic table has to manage the possibility of blocked entries, whereas a decoder can forbid an encoder from making references to unacknowledged entries.
```

>  An encoder MUST NOT insert an entry into the dynamic table (or duplicate an
-existing entry) if doing so would evict an entry with unacknowledged references.
-For header blocks that might rely on the newly added entry, the encoder can use
-a literal representation.
+existing entry) if doing so would evict a blocking entry.  For header blocks
+that would rely on the newly added entry, the encoder can instead use a literal

Not your text, but if we're talking about not being able to insert, then this really needs to say something like: An encoder that cannot insert entries in the dynamic table sends literal representations of header fields.

> @@ -324,10 +332,9 @@ permit the encoder to track the decoder's state.  These events are:
 
 Knowledge that a header block with references to the dynamic table has been
 processed permits the encoder to evict entries to which no unacknowledged
-references remain, regardless of whether those references were potentially
-blocking (see {{blocked-insertion}}).  When a stream is reset or abandoned, the
-indication that these header blocks will never be processed serves a similar
-function; see {{stream-cancellation}}.
+references remain; see {{blocked-insertion}}.  When a stream is reset or

Style nit: I think that we've been using the parenthetical form for this sort of reference.  I think that this is right, even the semi-colon, which I initially stumbled over, but consistency is somewhat important.

-- 
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/2261#pullrequestreview-195765011