[ 
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)

Reply via email to