Todd Lipcon has submitted this change and it was merged. Change subject: KUDU-1738. Allow users of the client to disable OpenSSL initialization ......................................................................
KUDU-1738. Allow users of the client to disable OpenSSL initialization OpenSSL's initialization sequence is not thread-safe, and many applications that embed Kudu may also be initializing OpenSSL by some other means. This provides an API so that such applications can disable Kudu's initialization sequence. This patch exposed a couple cases where we previously had conflicting OpenSSL initializations: * EasyCurl was initializing curl, which initted OpenSSL. The fix for this one was to explicitly disable curl's OpenSSL init sequence. * Python tests failed because _ssl was getting imported by setuptools. The fix for this one was to explicitly disable Kudu's init sequence. Additionally, Matt Jacobs noticed that the THREADID callback is actually not necessary on Linux -- if it isn't set, OpenSSL since 1.0.0 (our min version) defaults to using &errno, which is a different address in each thread. So, this patch removes the setting of this callback. Change-Id: I43eab5c848b30362356422d0380a336f16587562 Reviewed-on: http://gerrit.cloudera.org:8080/5992 Tested-by: Kudu Jenkins Reviewed-by: Alexey Serbin <[email protected]> --- M CMakeLists.txt M python/kudu/client.pyx M python/kudu/libkudu_client.pxd M src/kudu/client/client-unittest.cc M src/kudu/client/client.cc M src/kudu/client/client.h M src/kudu/integration-tests/CMakeLists.txt M src/kudu/master/CMakeLists.txt M src/kudu/security/openssl_util.cc M src/kudu/security/openssl_util.h M src/kudu/security/tls_context.cc M src/kudu/server/CMakeLists.txt M src/kudu/tserver/CMakeLists.txt M src/kudu/util/CMakeLists.txt M src/kudu/util/curl_util.cc 15 files changed, 159 insertions(+), 22 deletions(-) Approvals: Alexey Serbin: Looks good to me, approved Kudu Jenkins: Verified -- To view, visit http://gerrit.cloudera.org:8080/5992 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-MessageType: merged Gerrit-Change-Id: I43eab5c848b30362356422d0380a336f16587562 Gerrit-PatchSet: 10 Gerrit-Project: kudu Gerrit-Branch: master Gerrit-Owner: Todd Lipcon <[email protected]> Gerrit-Reviewer: Alexey Serbin <[email protected]> Gerrit-Reviewer: Dan Burkert <[email protected]> Gerrit-Reviewer: Jordan Birdsell <[email protected]> Gerrit-Reviewer: Kudu Jenkins Gerrit-Reviewer: Matthew Jacobs <[email protected]> Gerrit-Reviewer: Sailesh Mukil <[email protected]> Gerrit-Reviewer: Tidy Bot Gerrit-Reviewer: Todd Lipcon <[email protected]>
