Rabih Mourad created PROTON-2137:
------------------------------------
Summary: [cpp] Performance regression found in 0.29.0
Key: PROTON-2137
URL: https://issues.apache.org/jira/browse/PROTON-2137
Project: Qpid Proton
Issue Type: Bug
Components: cpp-binding
Affects Versions: proton-c-0.29.0
Reporter: Rabih Mourad
We are upgrading in our Murex code the proton version from 0.27.0 to 0.29.0.
While running our unit tests, we found a considerable performance regression.
We were able to reproduce the regression in a very simple use case.
Please find the code attached.
This test takes 1 ms in the version 0.27.0 and 0.28.0 but it takes 103 ms in
0.29.0 .
After analysis we discovered that the regression is coming from
[PROTON-2075|[https://github.com/apache/qpid-proton/commit/e152190459cd75792002d2aae72d351dc22abe27]]:
[C++] Allow TLS to use system default trusted certificate.
In fact we noticed that the ssl_client_options and the ssl_server_options are
not default constructed the same way and that the [ssl_server_options
|[https://github.com/apache/qpid-proton/blob/e152190459cd75792002d2aae72d351dc22abe27/cpp/src/ssl_options.cpp#L99]|https://github.com/apache/qpid-proton/blob/e152190459cd75792002d2aae72d351dc22abe27/cpp/src/ssl_options.cpp#L99]
is calling
[pni_init_ssl_domain|[https://github.com/apache/qpid-proton/blob/9dd013335de0694bc52848897b17190f297450c1/c/src/ssl/openssl.c#L475]|https://github.com/apache/qpid-proton/blob/9dd013335de0694bc52848897b17190f297450c1/c/src/ssl/openssl.c#L475]
which is taking some time.
What we would like is to avoid initializing ssl domain when it’s disabled from
the connection_options.
Does it sound reasonable for you?
Here is a patch that we propose. All proton unit tests are green on the master.
Can you please [~astitcher] check if this patch is aligned with what you meant
to do in (PROTON-2075) ?
Thanks,
Ali & Rabih
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]