You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kudu.apache.org by "Adar Dembo (Jira)" <ji...@apache.org> on 2020/04/01 19:34:00 UTC
[jira] [Commented] (KUDU-3101) There is no checking for
incompatibility of ASAN and dynamic linking in CMakeLists.txt
[ 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)