This is an automated email from the ASF dual-hosted git repository. abukor pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kudu.git
commit eacfee6fe2a9d323985225af0174ea6bb161f090 Author: Marton Greber <[email protected]> AuthorDate: Tue Oct 4 22:07:43 2022 +0200 KUDU-3404 disable TLS in glog Glog 0.4.0 introduced support for using thread local storage for its buffer. This feature is controlled by the WITH_TLS CMake variable, and it defaults to ON. [1] When Kudu upgraded to glog 0.6.0 as part of the Apple Silicon (M Series) fixes [2], it increased the thread local storage usage by >30000 bytes. This is a problem for Impala, because Impala starts a JVM. There are certain JVM threads (like the "reaper thread") that have very small stacks (e.g. 32KB) and with glibc the TLS space is allocated at the expense of stack space. [3] 30k of TLS usage leaves very little for the reaper thread. There are a series of bugs where the Java reaper thread hits a StackOverflowException because of high TLS usage. [4] This can cause various symptoms including hangs. To resolve Impala's problem, it would be useful to build libkudu_client.so with glog's WITH_TLS=OFF. [1] https://github.com/google/glog/commit/ 2df0ca34aa3000dadf76633ca700abf0bf50756d [2] https://github.com/apache/kudu/commit/ 543e128d473f8f7836e605bba8cd6512fa918550 [3] https://sourceware.org/bugzilla/show_bug.cgi?id=11787 [4] JDK bugs: JDK-8217475, JDK-8225035 Change-Id: I6b2151f7355ebb6a9ea120e5aa675c81eb3842ab Reviewed-on: http://gerrit.cloudera.org:8080/19089 Tested-by: Kudu Jenkins Reviewed-by: Attila Bukor <[email protected]> --- thirdparty/build-definitions.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/thirdparty/build-definitions.sh b/thirdparty/build-definitions.sh index ced8791ca..8dae63614 100644 --- a/thirdparty/build-definitions.sh +++ b/thirdparty/build-definitions.sh @@ -456,6 +456,7 @@ build_glog() { -DCMAKE_SHARED_LINKER_FLAGS="$EXTRA_LDFLAGS $EXTRA_LIBS -Wl,-rpath,$PREFIX/lib" \ -DBUILD_SHARED_LIBS=$SHARED \ -DBUILD_TESTING=OFF \ + -DWITH_TLS=OFF \ $EXTRA_CMAKE_FLAGS \ $GLOG_SOURCE ${NINJA:-make} -j$PARALLEL $EXTRA_MAKEFLAGS install
