W3C home > Mailing lists > Public > ietf-http-wg@w3.org > July to September 2013

Re: Removing dropped entry from ref set

From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Date: Tue, 24 Sep 2013 21:29:02 +0900
Message-ID: <CAPyZ6=K1buRAbLw1Eq4CSQkt1_2VRKtrHMg69rvO9-POQgA15Q@mail.gmail.com>
To: Andrew Rockwell <andrero@microsoft.com>
Cc: Mike Bishop <Michael.Bishop@microsoft.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
This question was asked several times in the list, which is a good
indication that the
clarification is desirable in the draft.

Best regards,

Tatsuhiro Tsujikawa


On Tue, Sep 24, 2013 at 5:51 AM, Andrew Rockwell <andrero@microsoft.com>wrote:

>  Roberto clarified this a while ago:****
>
> ďAny removal from the state set requires that anything that pointed to it
> be removed (else you'd segv or equivalent).****
>
> Thus, substitution or expiry always requires the corresponding
> reference-set entry to be removed.Ē****
>
> ** **
>
> Thereís a GitHub issue open tracking its inclusion into the spec, though
> it hasnít seen any love in a bit:
> https://github.com/http2/http2-spec/issues/238
>
> Andrew****
>
> ** **
>
> *From:* Mike Bishop [mailto:Michael.Bishop@microsoft.com]
> *Sent:* Monday, September 23, 2013 1:37 PM
> *To:* ietf-http-wg@w3.org
> *Subject:* Removing dropped entry from ref set****
>
> ** **
>
> Found a corner case that Iím not sure HPACK handles, or if it does Iím not
> finding it and we might want to clarifyÖ.****
>
> ** **
>
> Sequence of events:****
>
>    - Header X is present in reference set and header table.****
>
>
>    - Some other addition to the header table causes header X to be
>    dropped.  (This could be a header that causes X to be dropped, or a
>    substitution operation that replaces X.)****
>
>
>    - Now the compressor wishes to remove X from the reference set.  How
>    does it do so?****
>
>  ** **
>
> Per 3.2.1, the only operation that has the effect of removing an entry
> from the reference set is an indexed representation of a header already in
> the reference set.  But you canít send the indexed representation of a
> header no longer in the header table.****
>
> ** **
>
> To address it, we could say:****
>
>    - *Replacing X with another entry in the header table also replaces X
>    in the reference set.*  This makes perfect sense, but needs to be
>    stated.****
>
>
>    - *Dropping X from the header table also drops it from the reference
>    set.*  This is more problematic, because the compressor canít just
>    pass over headers it wants to communicate which are already in the
>    reference set.  Instead, it needs to leave them until the end, then check
>    if theyíre all still in the reference set.  If not, it needs to take
>    another action to emit one or more, then check that all the remaining are
>    still in the reference setÖ  This loops until the entire remaining set is
>    still present.****
>
>  ** **
>
> Am I missing something simple here?****
>
> ** **
>
> Sent from Windows Mail****
>
> ** **
>
Received on Tuesday, 24 September 2013 12:29:53 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 17:14:15 UTC