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

Bence Béky <notifications@github.com> Fri, 28 February 2020 14:58 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 5984D3A1943 for <quic-issues@ietfa.amsl.com>; Fri, 28 Feb 2020 06:58:32 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.696
X-Spam-Level:
X-Spam-Status: No, score=-1.696 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, DKIM_VALID_EF=-0.1, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_HELO_NONE=0.001, SPF_PASS=-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 0RZ2Tf7GCJLP for <quic-issues@ietfa.amsl.com>; Fri, 28 Feb 2020 06:58:31 -0800 (PST)
Received: from out-2.smtp.github.com (out-2.smtp.github.com [192.30.252.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7EEB3A1942 for <quic-issues@ietf.org>; Fri, 28 Feb 2020 06:58:30 -0800 (PST)
Received: from github-lowworker-943b171.ac4-iad.github.net (github-lowworker-943b171.ac4-iad.github.net [10.52.22.59]) by smtp.github.com (Postfix) with ESMTP id 0CBF21C0E8F for <quic-issues@ietf.org>; Fri, 28 Feb 2020 06:58:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1582901910; bh=X/oPNSIRRkdaim61UkIv5yNCOJVQz+EvYbz5q/0/Uyk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=iqUPPsjOdmBmXb6e37PLK100K3X8+FNsILIO5frheOcLg82L88botcPihFKOTNTq9 8vMxukwHRuF7vzbgOk+i7t/lxI9aRouiZHrfGYMthz+QPS5OR9/Ty/G0E0tNYgbux7 ruf+PSad87VeAm7J4QARVkgSDnJUUCwZmT6Wr/eY=
Date: Fri, 28 Feb 2020 06:58:29 -0800
From: Bence Béky <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKY2BZ65DSMGKYUNIAF4MZORLEVBNHHCAH5LIA@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/3305/592549911@github.com>
In-Reply-To: <quicwg/base-drafts/issues/3305@github.com>
References: <quicwg/base-drafts/issues/3305@github.com>
Subject: Re: [quicwg/base-drafts] Incorrect values for Required Insert Count (#3305)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5e592a95f254f_5f63ffd5d4cd96c1643b3"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: bencebeky
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/_Nw6-1hJWK2Y0YSVCaFntrCH0F8>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
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, 28 Feb 2020 14:58:33 -0000

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