From 5ae17425025a926f3c6654e3ff37ac68649a7cc5 Mon Sep 17 00:00:00 2001 From: Dom Del Nano Date: Wed, 10 Dec 2025 00:36:15 +0000 Subject: [PATCH 1/2] Fix Python https container from 3.12 upgrade Signed-off-by: Dom Del Nano (cherry picked from commit d12d0f5b6c04d417037e3e3e8cbd3807eb995c00) --- .../socket_tracer/testing/containers/ssl/https_server.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/stirling/source_connectors/socket_tracer/testing/containers/ssl/https_server.py b/src/stirling/source_connectors/socket_tracer/testing/containers/ssl/https_server.py index fbcf9c53312..f5b547a4d03 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/containers/ssl/https_server.py +++ b/src/stirling/source_connectors/socket_tracer/testing/containers/ssl/https_server.py @@ -49,8 +49,8 @@ def do_GET(self): httpd = HTTPServer(('localhost', 443), MyRequestHandler) -httpd.socket = ssl.wrap_socket(httpd.socket, - keyfile="/etc/ssl/server.key", - certfile='/etc/ssl/server.crt', server_side=True) +ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER) +ssl_context.load_cert_chain(certfile='/etc/ssl/server.crt', keyfile="/etc/ssl/server.key") +httpd.socket = ssl_context.wrap_socket(httpd.socket, server_side=True) httpd.serve_forever() From f042b99738ca9879cdc646ae3e8563f4cef67f5d Mon Sep 17 00:00:00 2001 From: Dom Del Nano Date: Wed, 10 Dec 2025 00:36:42 +0000 Subject: [PATCH 2/2] Rename python 310 container to match intent for its test coverage Signed-off-by: Dom Del Nano (cherry picked from commit a958b021d15b8465264386cd5e40050087c5d7b2) --- src/stirling/source_connectors/socket_tracer/BUILD.bazel | 2 +- .../socket_tracer/openssl_trace_bpf_test.cc | 8 +++++--- .../socket_tracer/testing/container_images/BUILD.bazel | 4 ++-- ...python_3_10_container.h => python_min_310_container.h} | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) rename src/stirling/source_connectors/socket_tracer/testing/container_images/{python_3_10_container.h => python_min_310_container.h} (94%) diff --git a/src/stirling/source_connectors/socket_tracer/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/BUILD.bazel index 47301fffdb5..8eae06c9bc2 100644 --- a/src/stirling/source_connectors/socket_tracer/BUILD.bazel +++ b/src/stirling/source_connectors/socket_tracer/BUILD.bazel @@ -461,7 +461,7 @@ pl_cc_bpf_test( "//src/stirling/source_connectors/socket_tracer/testing/container_images:node_12_3_1_container", "//src/stirling/source_connectors/socket_tracer/testing/container_images:node_14_18_1_alpine_container", "//src/stirling/source_connectors/socket_tracer/testing/container_images:node_client_container", - "//src/stirling/source_connectors/socket_tracer/testing/container_images:python_3_10_container", + "//src/stirling/source_connectors/socket_tracer/testing/container_images:python_min_310_container", "//src/stirling/source_connectors/socket_tracer/testing/container_images:ruby_container", "//src/stirling/testing:cc_library", ], diff --git a/src/stirling/source_connectors/socket_tracer/openssl_trace_bpf_test.cc b/src/stirling/source_connectors/socket_tracer/openssl_trace_bpf_test.cc index 92e25118a3f..96f3b84505a 100644 --- a/src/stirling/source_connectors/socket_tracer/openssl_trace_bpf_test.cc +++ b/src/stirling/source_connectors/socket_tracer/openssl_trace_bpf_test.cc @@ -34,7 +34,7 @@ #include "src/stirling/source_connectors/socket_tracer/testing/container_images/node_12_3_1_container.h" #include "src/stirling/source_connectors/socket_tracer/testing/container_images/node_14_18_1_alpine_container.h" #include "src/stirling/source_connectors/socket_tracer/testing/container_images/node_client_container.h" -#include "src/stirling/source_connectors/socket_tracer/testing/container_images/python_3_10_container.h" +#include "src/stirling/source_connectors/socket_tracer/testing/container_images/python_min_310_container.h" #include "src/stirling/source_connectors/socket_tracer/testing/container_images/ruby_container.h" #include "src/stirling/source_connectors/socket_tracer/testing/protocol_checkers.h" #include "src/stirling/source_connectors/socket_tracer/testing/socket_trace_bpf_test_fixture.h" @@ -86,7 +86,9 @@ class Node14_18_1AlpineContainerWrapper int32_t PID() const { return process_pid(); } }; -class Python310ContainerWrapper : public ::px::stirling::testing::Python310Container { +// Python 3.10 and later use SSL_write_ex and SSL_read_ex. This test case is itended to cover +// this case. See https://github.com/pixie-io/pixie/issues/1113 for more details. +class PythonMin310ContainerWrapper : public ::px::stirling::testing::PythonMin310Container { public: int32_t PID() const { return process_pid(); } }; @@ -181,7 +183,7 @@ http::Record GetExpectedHTTPRecord() { using OpenSSLServerImplementations = Types; TYPED_TEST_SUITE(OpenSSLTraceTest, OpenSSLServerImplementations); diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel b/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel index fb6c1a02e56..aca663b0db9 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel @@ -318,9 +318,9 @@ pl_cc_test_library( ) pl_cc_test_library( - name = "python_3_10_container", + name = "python_min_310_container", srcs = [], - hdrs = ["python_3_10_container.h"], + hdrs = ["python_min_310_container.h"], data = [ "//src/stirling/source_connectors/socket_tracer/testing/containers/ssl:python_min_310_https_server.tar", ], diff --git a/src/stirling/source_connectors/socket_tracer/testing/container_images/python_3_10_container.h b/src/stirling/source_connectors/socket_tracer/testing/container_images/python_min_310_container.h similarity index 94% rename from src/stirling/source_connectors/socket_tracer/testing/container_images/python_3_10_container.h rename to src/stirling/source_connectors/socket_tracer/testing/container_images/python_min_310_container.h index c0cb2952b80..0b3ce57f9f1 100644 --- a/src/stirling/source_connectors/socket_tracer/testing/container_images/python_3_10_container.h +++ b/src/stirling/source_connectors/socket_tracer/testing/container_images/python_min_310_container.h @@ -27,9 +27,9 @@ namespace px { namespace stirling { namespace testing { -class Python310Container : public ContainerRunner { +class PythonMin310Container : public ContainerRunner { public: - Python310Container() + PythonMin310Container() : ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix, kReadyMessage) {}