[
https://issues.apache.org/jira/browse/KUDU-3101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17073128#comment-17073128
]
Adar Dembo commented on KUDU-3101:
----------------------------------
That note in the Kudu README is actually stale: in 2015 we [removed the
restriction|https://github.com/apache/kudu/commit/02b428fd23a5e8e76601ac00ad1fa6aa7b3f368a]
that ASAN cannot use dynamic linkage, as it was only relevant to clang 3.4 or
older. Since then we've also [mandated a newer
clang|https://github.com/apache/kudu/commit/638d95d295da0bddf3fa157792ec7de8889ac919],
so there's really no obstacle to using ASAN with dynamic linkage now.
That said, this is clearly an issue for ARM64 and we could add an
ARM64-specific workaround for it in Kudu. Is it a known issue in ASAN? Have you
asked ASAN developers about it?
> There is no checking for incompatibility of ASAN and dynamic linking in
> CMakeLists.txt
> --------------------------------------------------------------------------------------
>
> Key: KUDU-3101
> URL: https://issues.apache.org/jira/browse/KUDU-3101
> Project: Kudu
> Issue Type: Bug
> Reporter: RuiChen
> Priority: Minor
>
> Kudu Readme mention "NOTE: Dynamic linking is incompatible with ASAN and
> static linking is incompatible with TSAN."[1], but no checking for it in
> CMakeLists.txt, so if developer use following cmake command, cmake and make
> will be successful, but maybe face issue when run test cases.
> {code:java}
> CC=../../thirdparty/clang-toolchain/bin/clang \
> CXX=../../thirdparty/clang-toolchain/bin/clang++ \
> cmake -DCMAKE_BUILD_TYPE=debug -DKUDU_USE_ASAN=1 ../..{code}
> I build Kudu in ARM64 server, issue like this, if I use KUDU_LINK=static,
> testing pass,
> but weird, in x86 ASAN and dynamic linking worked in Jenkins CI, seems this
> issue only impact ARM64 :
> {code:java}
> ubuntu@ubuntu:~/workspace/github.com/apache/kudu/build/asan$./bin/example-test
>
> AddressSanitizer:DEADLYSIGNAL
> =================================================================
> ==20451==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc
> 0x000000000000 bp 0xffffd0853a20 sp 0xffffd0853a20 T0)
> ==20451==Hint:pcpointstothezeropage.
> ==20451==The signal is caused by a READ memoryaccess.
> ==20451==Hint: address points to the zero page.
> AddressSanitizercannotprovideadditionalinfo.
> SUMMARY: AddressSanitizer: SEGV (<unknown module>)
> ==20451==ABORTING
> {code}
>
> [[1]:
> https://github.com/apache/kudu#building-kudu-with-dynamic-linking|https://github.com/apache/kudu#building-kudu-with-dynamic-linking]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)