Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1soSiz-00BRhN-EG for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Sep 2024 19:09:58 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1soSi1-0069CX-3C for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Sep 2024 19:08:57 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1soSi0-00697h-Ku for pgsql-hackers@lists.postgresql.org; Wed, 11 Sep 2024 19:08:56 +0000 Received: from mail-ej1-x631.google.com ([2a00:1450:4864:20::631]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1soShw-000gDf-JH for pgsql-hackers@lists.postgresql.org; Wed, 11 Sep 2024 19:08:55 +0000 Received: by mail-ej1-x631.google.com with SMTP id a640c23a62f3a-a8629ddffbaso2487666b.1 for ; Wed, 11 Sep 2024 12:08:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726081731; x=1726686531; darn=lists.postgresql.org; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:sender:from:to:cc:subject:date:message-id:reply-to; bh=0NAa7L9ujP5Ifqw+ejibATFs8YHNtWb7sAY+soKldCM=; b=EdDCTDGOJfl5O0y8Z0gCbyvdknwBwnTj5xRaFk/Wo7KGLrhsoSZDC3jYV8WXdFZARO oOoRuo5NNsjQN7+2DG+4Kzst9pLleD8JY8xy3Jr+OuucouMG6+bLD2lUQT0VDV3Txlkd 1vk071wmfIMduZmEgBendO2No7dWVUGjyaAhk9QW0S+YCfueGWr9sCyCKemxL44P7qOo iSe2c67HTkxCFQ7iuP7hHvN1LSEe2HMZ6lyn06aSdLAKWXDgBixX7vsdSS9gzRwD7PrQ mkbZ9XrlM2jkGxi+c+EWkheIu1xyy1mKxtFHEE/96yNV9s+fVtAXfiEzGQwSwmhjHBsy 3yYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726081731; x=1726686531; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:sender:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=0NAa7L9ujP5Ifqw+ejibATFs8YHNtWb7sAY+soKldCM=; b=e0JxhCnukUrbZm7Y6Ptnl0GJyODdfeUGyQ9o+eS3nxRSX7J+EuPZi380t9QeBdZHUF yhIolktzl/QIFrRx5ayeqU2X32owRD+nWFRo0lumIDGO6kdqhH+zkFxlW8ORbYpglgri uD02YvCNf+NyGUDzOBo74R13pqEtYGRMwbeWeovVzSYWKhqTm744Xfg3Ua0wquz1Tevx MeYJgq9l1jkrRrKIL1ToKsBXtWM/wAYRUxlr9Ikg4TFtUV5n2MsTugJKR3vAoSruEcYQ 9RV53Lj5cBtY5X8Ma88sENtSeHzuWkwwcgc51LqDfhp33YjluUZaYL6LLG99lMB3ZQI0 rayw== X-Gm-Message-State: AOJu0YxwUiiReiBDtYqZGVhnU4SUAVMfTx+ZUdi2LRfGdHXmki1jfUFK EVoW9wqW9HIva2eNSmEfUKq1IbQjlrUAkZFj4SUCntz/cIYuo0iU X-Google-Smtp-Source: AGHT+IFlxJh0eMu8No//ARpKsvn5uUMgiIixbDGdx+L1Fv6hHfpOpxGMTfw7Lv9oAPf2b0/IYCYGjw== X-Received: by 2002:a17:906:fe4a:b0:a86:7179:849e with SMTP id a640c23a62f3a-a902910747dmr20074466b.0.1726081730566; Wed, 11 Sep 2024 12:08:50 -0700 (PDT) Received: from [192.168.178.27] (vdsl-178-19-234-133.net.encoline.de. [178.19.234.133]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a8d25ceaf4fsm643385266b.152.2024.09.11.12.08.49 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 11 Sep 2024 12:08:49 -0700 (PDT) Sender: Lars Kanis Message-ID: <68cb19fc-4a1c-473e-99e6-d83b99c2e245@greiz-reinsdorf.de> Date: Wed, 11 Sep 2024 21:08:45 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: libpq: Process buffered SSL read bytes to support records >8kB on async API To: Jacob Champion Cc: pgsql-hackers@lists.postgresql.org References: <2039ac58-d3e0-434b-ac1a-2a987f3b4cb1@greiz-reinsdorf.de> Content-Language: en-US From: Lars Kanis Autocrypt: addr=lars@greiz-reinsdorf.de; keydata= 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 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Thank you Jacob for verifying this issue! > Gory details of the packet sizes, if it's helpful: > - max TLS record size is 12k, because it made the math easier > - server sends DataRow of 32006 bytes, followed by DataRow of 806 > bytes, followed by CommandComplete/ReadyForQuery > - so there are three TLS records on the wire containing > 1) DataRow 1 fragment 1 (12k bytes) > 2) DataRow 1 fragment 2 (12k bytes) > 3) DataRow 1 fragment 3 (7430 bytes) + DataRow 2 (806 bytes) > + CommandComplete + ReadyForQuery How did you verify the issue on the server side - with YugabyteDB or with a modified Postgres server? I'd like to verify the GSSAPI part and I'm familiar with the Postgres server only. > I agree that PQconsumeInput() needs to ensure that the transport > buffers are all drained. But I'm not sure this is a complete solution; > doesn't GSS have the same problem? And are there any other sites that > need to make the same guarantee before returning? Which other sites do you mean? The synchronous transfer already works, since the select() is short-circuit in case of pending bytes: [1] > I need to switch away from this for a bit. Would you mind adding this > to the next Commitfest as a placeholder? No problem; registered: https://commitfest.postgresql.org/50/5251/ -- Regards, Lars [1] https://github.com/postgres/postgres/blob/77761ee5dddc0518235a51c533893e81e5f375b9/src/interfaces/libpq/fe-misc.c#L1070