Skip to content

Commit b81253e

Browse files
authored
Fix openssl bpf test failure introduced by python 3.12 upgrade (#2292)
1 parent defe050 commit b81253e

File tree

5 files changed

+13
-11
lines changed

5 files changed

+13
-11
lines changed

src/stirling/source_connectors/socket_tracer/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ pl_cc_bpf_test(
461461
"//src/stirling/source_connectors/socket_tracer/testing/container_images:node_12_3_1_container",
462462
"//src/stirling/source_connectors/socket_tracer/testing/container_images:node_14_18_1_alpine_container",
463463
"//src/stirling/source_connectors/socket_tracer/testing/container_images:node_client_container",
464-
"//src/stirling/source_connectors/socket_tracer/testing/container_images:python_3_10_container",
464+
"//src/stirling/source_connectors/socket_tracer/testing/container_images:python_min_310_container",
465465
"//src/stirling/source_connectors/socket_tracer/testing/container_images:ruby_container",
466466
"//src/stirling/testing:cc_library",
467467
],

src/stirling/source_connectors/socket_tracer/openssl_trace_bpf_test.cc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/node_12_3_1_container.h"
3535
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/node_14_18_1_alpine_container.h"
3636
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/node_client_container.h"
37-
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/python_3_10_container.h"
37+
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/python_min_310_container.h"
3838
#include "src/stirling/source_connectors/socket_tracer/testing/container_images/ruby_container.h"
3939
#include "src/stirling/source_connectors/socket_tracer/testing/protocol_checkers.h"
4040
#include "src/stirling/source_connectors/socket_tracer/testing/socket_trace_bpf_test_fixture.h"
@@ -86,7 +86,9 @@ class Node14_18_1AlpineContainerWrapper
8686
int32_t PID() const { return process_pid(); }
8787
};
8888

89-
class Python310ContainerWrapper : public ::px::stirling::testing::Python310Container {
89+
// Python 3.10 and later use SSL_write_ex and SSL_read_ex. This test case is itended to cover
90+
// this case. See https://github.com/pixie-io/pixie/issues/1113 for more details.
91+
class PythonMin310ContainerWrapper : public ::px::stirling::testing::PythonMin310Container {
9092
public:
9193
int32_t PID() const { return process_pid(); }
9294
};
@@ -181,7 +183,7 @@ http::Record GetExpectedHTTPRecord() {
181183

182184
using OpenSSLServerImplementations =
183185
Types<NginxOpenSSL_1_1_0_ContainerWrapper, NginxOpenSSL_1_1_1_ContainerWrapper,
184-
NginxOpenSSL_3_0_8_ContainerWrapper, Python310ContainerWrapper,
186+
NginxOpenSSL_3_0_8_ContainerWrapper, PythonMin310ContainerWrapper,
185187
Node12_3_1ContainerWrapper, Node14_18_1AlpineContainerWrapper>;
186188

187189
TYPED_TEST_SUITE(OpenSSLTraceTest, OpenSSLServerImplementations);

src/stirling/source_connectors/socket_tracer/testing/container_images/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,9 @@ pl_cc_test_library(
318318
)
319319

320320
pl_cc_test_library(
321-
name = "python_3_10_container",
321+
name = "python_min_310_container",
322322
srcs = [],
323-
hdrs = ["python_3_10_container.h"],
323+
hdrs = ["python_min_310_container.h"],
324324
data = [
325325
"//src/stirling/source_connectors/socket_tracer/testing/containers/ssl:python_min_310_https_server.tar",
326326
],

src/stirling/source_connectors/socket_tracer/testing/container_images/python_3_10_container.h renamed to src/stirling/source_connectors/socket_tracer/testing/container_images/python_min_310_container.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ namespace px {
2727
namespace stirling {
2828
namespace testing {
2929

30-
class Python310Container : public ContainerRunner {
30+
class PythonMin310Container : public ContainerRunner {
3131
public:
32-
Python310Container()
32+
PythonMin310Container()
3333
: ContainerRunner(::px::testing::BazelRunfilePath(kBazelImageTar), kContainerNamePrefix,
3434
kReadyMessage) {}
3535

src/stirling/source_connectors/socket_tracer/testing/containers/ssl/https_server.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ def do_GET(self):
4949

5050
httpd = HTTPServer(('localhost', 443), MyRequestHandler)
5151

52-
httpd.socket = ssl.wrap_socket(httpd.socket,
53-
keyfile="/etc/ssl/server.key",
54-
certfile='/etc/ssl/server.crt', server_side=True)
52+
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
53+
ssl_context.load_cert_chain(certfile='/etc/ssl/server.crt', keyfile="/etc/ssl/server.key")
54+
httpd.socket = ssl_context.wrap_socket(httpd.socket, server_side=True)
5555

5656
httpd.serve_forever()

0 commit comments

Comments
 (0)