Subject: [quicwg/base-drafts] qpack: "all" header blocks the decoder started reading (#1409)

From: Dmitri Tikhonov <[email-masked]>
Date: Fri, 01 Jun 2018 14:02:47 -0700

```
                                                           A stream
   becomes unblocked when the greatest absolute index in the dynamic
   table becomes greater than or equal to the Largest Reference for all
   header blocks the decoder has started reading from the stream.
```

The decoder can only read one header block at a time -- what are these _all header blocks_ that the decoder has started reading?

If there are multiple header blocks in a stream, the stream can become blocked, unblocked, then blocked again, and so on.

-- 
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/1409

---

From: afrind <[email-masked]>
Date: Fri, 01 Jun 2018 16:19:32 -0700

I think we discussed this on the original PR.  We didn't see a reason to expressly forbid attempting to decode a new header block on a blocked stream.  Consider a response stream with several PUSH_PROMISE frames: even though the first one may be blocked, the next one may have fully arrived and be immediately decodable, and perhaps the decoder wants to decode it while waits.

-- 
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/1409#issuecomment-394033549

---

From: Mike Bishop <[email-masked]>
Date: Fri, 01 Jun 2018 16:22:35 -0700

Yeah, this was added to reduce any ambiguity between number of header blocks and number of streams, in case an overly savvy decoder noticed there are multiple blocked references in different header blocks on the same stream.

-- 
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/1409#issuecomment-394033949

---

From: Dmitri Tikhonov <[email-masked]>
Date: Fri, 01 Jun 2018 16:38:10 -0700

I see.  The draft suggests, however, that the blocked header data remain in its stream's flow control window:

```
                                        While blocked, header field data
   should remain in the blocked stream's flow control window.
```

While it does not say so explicitly, in practice this recommendation means that the header block won't be read (I _think_ -- depends on how it's framed in HQ?), effectively making the stream blocked on a single header block.  (By the way, why is the above `should` and not `SHOULD`?)

Nevertheless, I agree that, technically, there is no restriction not to read in as many header blocks as one desires and have them all block the stream.  I wonder whether the two sentences quoted in the original report could be phrased better.  Feel free to close if you think the current verbiage is OK.  It confused me, though.

-- 
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/1409#issuecomment-394035935

---

From: Martin Thomson <[email-masked]>
Date: Fri, 01 Jun 2018 16:53:09 -0700

(This is why we don't use "should".  This isn't an interoperability requirement, it's a *suggestion*.)

If the words can be improved, great.  I'm not seeing anything obvious right now.

-- 
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/1409#issuecomment-394037741

---

From: Mike Bishop <[email-masked]>
Date: Fri, 01 Jun 2018 20:51:43 -0700

The new BCP14 says that we MAY use "should" to make suggestions, however.  ;-)  How about an RFC6919 "OUGHT TO"?

-- 
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/1409#issuecomment-394055620

---

From: Dmitri Tikhonov <[email-masked]>
Date: Mon, 04 Jun 2018 04:58:14 -0700

Closing -- it seems that I am the only one who thinks the wording is problematic.

-- 
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/1409#issuecomment-394329720

---

From: Dmitri Tikhonov <[email-masked]>
Date: Mon, 04 Jun 2018 04:58:14 -0700

Closed #1409.

-- 
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/1409#event-1661107374