← Commit list

e65dc7fa23

Stefan Eissing
Stefan Eissing
2025-09-01
FAILED Duration: 200s

Subject

aws-lc: do not use large buffer

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/cf-h2-proxy.c+1 -1
@@ -474,7 +474,7 @@ static CURLcode proxy_h2_progress_ingress(struct Curl_cfilter *cf,
Curl_bufq_len(&ctx->inbufq), result, nread);
if(result) {
if(result != CURLE_AGAIN) {
- failf(data, "Failed receiving HTTP2 data");
+ failf(data, "Failed receiving HTTP2 proxy data");
return result;
}
break;
lib/vtls/openssl.c+7 -2
@@ -121,8 +121,14 @@
static void ossl_provider_cleanup(struct Curl_easy *data);
#endif
+/*
+ * AWS-LC has `SSL_CTX_set_default_read_buffer_len()?` but runs into
+ * decryption failures with large buffers. Sporadic failures in
+ * test_10_08 with h2 proxy uploads, increased frequency
+ * with CURL_DBG_SOCK_RBLOCK=50. Looks like a bug on their part.
+ */
#if OPENSSL_VERSION_NUMBER >= 0x10100000L && \
- !defined(LIBRESSL_VERSION_NUMBER) && !defined(OPENSSL_IS_BORINGSSL)
+ !defined(LIBRESSL_VERSION_NUMBER) && !defined(HAVE_BORINGSSL_LIKE)
#define HAVE_SSL_CTX_SET_DEFAULT_READ_BUFFER_LEN 1
#endif
@@ -4129,7 +4135,6 @@ CURLcode Curl_ossl_ctx_init(struct ossl_ctx *octx,
However using a large buffer (8 packets) actually decreases performance.
4 packets is better.
*/
-
#ifdef HAVE_SSL_CTX_SET_DEFAULT_READ_BUFFER_LEN
SSL_CTX_set_default_read_buffer_len(octx->ssl_ctx, 0x401e * 4);
#endif
tests/http/test_10_proxy.py+1 -1
@@ -226,11 +226,11 @@ class TestProxy:
extra_args=xargs)
assert self.get_tunnel_proto_used(r) == tunnel
r.check_response(count=count, http_status=200)
+ assert r.total_connects == 1, r.dump_logs()
indata = open(srcfile).readlines()
for i in range(count):
respdata = open(curl.response_file(i)).readlines()
assert respdata == indata, f'response {i} differs'
- assert r.total_connects == 1, r.dump_logs()
@pytest.mark.skipif(condition=not Env.have_ssl_curl(), reason="curl without SSL")
@pytest.mark.parametrize("tunnel", ['http/1.1', 'h2'])