[ https://issues.apache.org/jira/browse/KUDU-3404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Joe McDonnell updated KUDU-3404: -------------------------------- Attachment: 0001-Add-WITH_TLS-OFF-to-glog-build-definition.patch > glog 0.6.0 increases the TLS usage of libkudu_client.so substantially > --------------------------------------------------------------------- > > Key: KUDU-3404 > URL: https://issues.apache.org/jira/browse/KUDU-3404 > Project: Kudu > Issue Type: Bug > Components: client > Affects Versions: 1.17.0 > Reporter: Joe McDonnell > Priority: Critical > Attachments: 0001-Add-WITH_TLS-OFF-to-glog-build-definition.patch > > > Glog 0.4 introduced supported for using thread local storage for its buffer. > This feature is controlled by the WITH_TLS CMake variable, and it defaults to > ON. See > [https://github.com/google/glog/commit/2df0ca34aa3000dadf76633ca700abf0bf50756d] > . When Kudu upgraded to glog 0.6.0 as part of the M1 fixes in "[KUDU-3374 > Add support for M1 and macOS > Monterey|https://github.com/apache/kudu/commit/543e128d473f8f7836e605bba8cd6512fa918550]", > it increased the thread local storage usage by >30000 bytes. > {noformat} > # Older libkudu_client.so has 0x100 = 256 bytes of TLS: > $ readelf -l libkudu_client.so | grep "TLS" -A1 > TLS 0x00000000007d14c0 0x00000000007d24c0 0x00000000007d24c0 > 0x0000000000000080 0x0000000000000100 R 0x40 > # Newer libkudu_client.so has 0x77b9 = 30649 bytes of TLS: > $ readelf -l libkudu_client.so.0 | grep TLS -A1 > TLS 0x0000000000751280 0x0000000000752280 0x0000000000752280 > 0x0000000000000080 0x00000000000077b9 R 40{noformat} > 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. 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. This can cause various symptoms including hangs. > GLIBC message thread: [https://sourceware.org/bugzilla/show_bug.cgi?id=11787] > JDK bugs: > [JDK-8217475|https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8217475], > [JDK-8225035|https://bugs.java.com/bugdatabase/view_bug.do?bug_id=JDK-8225035] > To resolve Impala's problem, it would be useful to build libkudu_client.so > with glog's WITH_TLS=OFF. -- This message was sent by Atlassian Jira (v8.20.10#820010)