Subject: Re: [quicwg/base-drafts] Incorrect values for Required Insert Count (#3305)

From: Bence Béky <[email-masked]>
Date: Fri, 28 Feb 2020 06:58:29 -0800

This is not only a performance problem or a potential deadlock.

If the encoder sends an unnecessarily large Required Insert Count but does not consider the stream blocked if the Known Insert Count is at least as large as the actual Required Insert Count, and the decoder does not start decoding until the Known Insert Count reaches the Required Insert Count received in the header block prefix (therefore it does not realize that the stream is in fact not blocked), then the encoder and the decoder might have a different idea about the number of blocked streams.  This might result in the decoder closing the connection due to SETTINGS_QPACK_BLOCKED_STREAMS violation.

Of course is the encoder uses the same incorrect value for sending as Required Insert Count and for bookkeeping of blocked streams then this problem does not arise.

-- 
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/3305#issuecomment-592549911

---

From: Bence Béky <[email-masked]>
Date: Fri, 28 Feb 2020 07:20:40 -0800

> 
> Which part is obtuse? Should I replace '...the value defined in Section 2.1.3.' and '...smaller/larger than expected' with a restatement of the expected values? I'm pretty sure it used to say that and we changed it to this. Or would moving it to another section make it easier to find?
> 

I created issue #3487 to see what such a restatement would look like.  For the record, I do not think this is necessary, as I do not find this paragraph ambigous, but of course this does not mean that a software developer new to QPACK would be able to immediately understand it.

Moving it to another section, like to 2.1.3 (within the encoder section), might help the text flow better.  However, since this paragraph is discussing requirements on the decoder, the subsection where it is right now is probably the most suitable one.

-- 
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/3305#issuecomment-592559738