Subject: Re: [quicwg/base-drafts] encoder stream can deadlock (#1420)

From: afrind <[email-masked]>
Date: Mon, 10 Sep 2018 21:25:05 +0000 (UTC)

@MikeBishop and I came up with another encoder stream deadlock.  If an encoder runs out of stream flow control on the encoder stream, it may erroneously send requests (and fill the connection flow control) that depend on bytes that haven't been transmitted.  Some text advising caution in this scenario may be warranted.  eg: perhaps the encoder shouldn't encode a table insert if it would overflow encoder stream flow control window.

-- 
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/1420#issuecomment-420066409

---

From: Kazuho Oku <[email-masked]>
Date: Mon, 10 Sep 2018 17:01:26 -0700

@afrind 
> If an encoder runs out of stream flow control on the encoder stream, it may erroneously send requests (and fill the connection flow control) that depend on bytes that haven't been transmitted. Some text advising caution in this scenario may be warranted.

+1.

Re the issue that @martinthomson initially raised, I think that we should state that:
* a non-streaming decoder should cap the maximum size of an instruction that it processes to avoid memory exhaustion attacks
* a non-streaming decoder that keeps partial instructions in the receive buffer should set the size of the receive buffer equal to or greater than the maximum permitted size of the instruction

-- 
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/1420#issuecomment-420100423