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

Martin Thomson <noreply@github.com> Fri, 14 February 2020 00:29 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1F6CF120020 for <quic-issues@ietfa.amsl.com>; Thu, 13 Feb 2020 16:29:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7
X-Spam-Level:
X-Spam-Status: No, score=-7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id QmL0XFwF046x for <quic-issues@ietfa.amsl.com>; Thu, 13 Feb 2020 16:29:11 -0800 (PST)
Received: from out-7.smtp.github.com (out-7.smtp.github.com [192.30.252.198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4869212001E for <quic-issues@ietf.org>; Thu, 13 Feb 2020 16:29:11 -0800 (PST)
Received: from github-lowworker-5825cd4.ac4-iad.github.net (github-lowworker-5825cd4.ac4-iad.github.net [10.52.22.68]) by smtp.github.com (Postfix) with ESMTP id 79D8E2C1380 for <quic-issues@ietf.org>; Thu, 13 Feb 2020 16:29:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1581640150; bh=g3L2+E9165XUe1MiP7PPounHwNPpwLpHF1IaTrqxSOw=; h=Date:From:To:Subject:From; b=HOusy6X4/GmL8E4EkVfxsIEyUesN774qLDob5sC1RFnpTt1s2NUd0UQuVF2J7HEgB Fw8Tc1osCEn6PDYpzso5vT46kn7rMAWs1WRXl37R3kwvIaUsZtEKqaQZQWu9XfYHHH BAkMrdZS/uXGbSGp0aRR+kWO3EozbSWBc1xqAzdg=
Date: Thu, 13 Feb 2020 16:29:10 -0800
From: Martin Thomson <noreply@github.com>
To: quic-issues@ietf.org
Message-ID: <quicwg/base-drafts/push/refs/heads/encoder-deadlock-fc/000000-be10ac@github.com>
Subject: [quicwg/base-drafts] be10ac: Deadlocks, and how to avoid them
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-Auto-Response-Suppress: All
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/FEKUoWGPDcaH4_Vc_grhrdRR6k0>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 14 Feb 2020 00:29:13 -0000

  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 <mt@lowentropy.net>
  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.