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

Mike Bishop <notifications@github.com> Wed, 06 June 2018 21:20 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 9448B130DD8 for <quic-issues@ietfa.amsl.com>; Wed, 6 Jun 2018 14:20:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 uOgR4v4CjVSH for <quic-issues@ietfa.amsl.com>; Wed, 6 Jun 2018 14:19:58 -0700 (PDT)
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 E3725130DCF for <quic-issues@ietf.org>; Wed, 6 Jun 2018 14:19:57 -0700 (PDT)
Date: Wed, 06 Jun 2018 14:19:56 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1528319996; bh=tGDocKUGtJz2rBd1+ScICpRhhH0dlC8efbh+pwbjsOs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=HSTvwGZOg/PIAp+m1DP5dEjgLtprevQ+alt2lTl6J9Jl8pqfrlz4/DWnnnhwfA/sc CtDz850QVrO/faOI4XcslyeKuoTUE4RAgfbC7kJHOnCu41dbyKFV1NzQASVp+XOJuH uf+GlQNAuEEFByNz+89wMkMj68vK2hJ/yDsJ9rWg=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab79ea9e23178e656286c5369f6d0014958646509092cf00000001173011fc92a169ce13a9a7d1@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/1420/395217431@github.com>
In-Reply-To: <quicwg/base-drafts/issues/1420@github.com>
References: <quicwg/base-drafts/issues/1420@github.com>
Subject: Re: [quicwg/base-drafts] encoder stream can deadlock (#1420)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b184ffcc0bf8_58052b12193e6f601106d3"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/HCUI5nibrDy-buUjbB9oXGLIHgo>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.26
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: Wed, 06 Jun 2018 21:20:01 -0000

It's also worth noting that we really have two situations here:

On the encoder stream, nothing says the encoder has to send all updates in a single block.  It can query for available flow control, write that much, and wait for more credit.  The only time it deadlocks with this approach is when a single header is bigger than the flow control credit being issued, in which case don't put those huge Kerberos tickets in your dynamic table, for the love of God.

On the request stream, you do have to send the whole header set all at once, which is harder.  However, you're also bounding the size of headers you'll accept on any given stream; we can recommend that the flow control window be large enough to transfer the expected header set or that you be willing to buffer as needed.

-- 
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-395217431