Subject: [quicwg/base-drafts] be10ac: Deadlocks, and how to avoid them

From: Martin Thomson <[email-masked]>
Date: Thu, 13 Feb 2020 16:29:10 -0800

Branch: refs/heads/encoder-deadlock-fc
  Home:   https://github.com/quicwg/base-drafts
  Commit: be10ac0dba23109d2e7ae6eab509f222ee7686c0
      https://github.com/quicwg/base-drafts/commit/be10ac0dba23109d2e7ae6eab509f222ee7686c0
  Author: Martin Thomson <[email-masked]>
  Date:   2020-02-14 (Fri, 14 Feb 2020)

  Changed paths:
    M draft-ietf-quic-qpack.md

  Log Message:
  -----------
  Deadlocks, and how to avoid them

Much belated, this attempts to address the concerns about deadlocking.
Basically, this says that you should avoid instructions that don't have
flow control credit.  It doesn't say how an encoder might learn what
limits are, but we've seen a range of tactics being used in
implementations and I don't want to get into transport API debates.

This doesn't cover the memory exhaustion attack that @kazuho suggests on
the issue; I think that is better covered more generally by the
connection-level flow control limits.

Closes #1420.