Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[asan] Multiple failing tests with COMPILER_RT_DEBUG=ON #46206

Open
arichardson opened this issue Jul 27, 2020 · 1 comment · May be fixed by #84614
Open

[asan] Multiple failing tests with COMPILER_RT_DEBUG=ON #46206

arichardson opened this issue Jul 27, 2020 · 1 comment · May be fixed by #84614
Labels
bugzilla Issues migrated from bugzilla compiler-rt:asan Address sanitizer

Comments

@arichardson
Copy link
Member

Bugzilla Link 46862
Version unspecified
OS All

Extended Description

I am seeing the following test failures running check-asan on Linux x86_64 (Ubuntu 18.04) with commit 1956cf1 from earlier today.
I guess there is no CI testing of this configuration?

These tests are failing:
AddressSanitizer-x86_64-linux :: TestCases/Linux/activation-options.cpp
AddressSanitizer-x86_64-linux :: TestCases/Linux/odr-violation.cpp
AddressSanitizer-x86_64-linux :: TestCases/Linux/odr-vtable.cpp
AddressSanitizer-x86_64-linux :: TestCases/Posix/start-deactivated.cpp
AddressSanitizer-x86_64-linux :: TestCases/handle_noreturn_bug.cpp

Backtraces:

AddressSanitizer-x86_64-linux :: TestCases/Linux/activation-options.cpp
==31316==AddressSanitizer CHECK failed: /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_poisoning.h:81 "((CanPoisonMemory())) != (0)" (0x0, 0x0)
#​0 0x50eb9b in __asan::AsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:73:5
#​1 0x52bae3 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:78:5
#​2 0x510e13 in __asan::FastPoisonShadowPartialRightRedzone(unsigned long, unsigned long, unsigned long, unsigned char) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_poisoning.h:81:3
#​3 0x510e13 in __asan::AsanThread::ClearShadowForThreadStackAndTLS() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:312
#​4 0x51160d in __asan::AsanThread::Init(__asan::AsanThread::InitOptions const*) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:230:3
#​5 0x5118da in __asan::AsanThread::ThreadStart(unsigned long long, __sanitizer::atomic_uintptr_t*) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:247:3
#​6 0x511a26 in __asan::CreateMainThread() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:280:16
#​7 0x50e463 in __asan::AsanInitInternal() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:496:29
#​8 0x50e92d in __asan_init /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:638:3
#​9 0x7f1c9c751855 in _dl_init /build/glibc-2ORdQG/glibc-2.27/elf/dl-init.c:104
#​10 0x7f1c9c7420c9 (/lib64/ld-linux-x86-64.so.2+0x10c9)

AddressSanitizer-x86_64-linux :: TestCases/Linux/odr-violation.cpp

AddressSanitizer: nested bug in the same thread, aborting.

AddressSanitizer-x86_64-linux :: TestCases/Linux/odr-vtable.cpp

AddressSanitizer: nested bug in the same thread, aborting.

AddressSanitizer-x86_64-linux :: TestCases/Posix/start-deactivated.cpp
==30127==AddressSanitizer CHECK failed: /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_poisoning.h:81 "((CanPoisonMemory())) != (0)" (0x0, 0x0)
#​0 0x50eb9b in __asan::AsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:73:5
#​1 0x52bae3 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:78:5
#​2 0x510e13 in __asan::FastPoisonShadowPartialRightRedzone(unsigned long, unsigned long, unsigned long, unsigned char) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_poisoning.h:81:3
#​3 0x510e13 in __asan::AsanThread::ClearShadowForThreadStackAndTLS() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:312
#​4 0x51160d in __asan::AsanThread::Init(__asan::AsanThread::InitOptions const*) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:230:3
#​5 0x5118da in __asan::AsanThread::ThreadStart(unsigned long long, __sanitizer::atomic_uintptr_t*) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:247:3
#​6 0x511a26 in __asan::CreateMainThread() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:280:16
#​7 0x50e463 in __asan::AsanInitInternal() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:496:29
#​8 0x50e92d in __asan_init /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:638:3
#​9 0x7f3686cbf855 in _dl_init /build/glibc-2ORdQG/glibc-2.27/elf/dl-init.c:104
#​10 0x7f3686cb00c9 (/lib64/ld-linux-x86-64.so.2+0x10c9)

AddressSanitizer-x86_64-linux :: TestCases/handle_noreturn_bug.cpp

  • env ASAN_OPTIONS=poison_heap=0 /local/scratch/alr48/cheri/build/upstream-llvm-project-build/projects/compiler-rt/test/asan/X86_64LinuxConfig/TestCases/Output/handle_noreturn_bug.cpp.tmp
    ==16626==AddressSanitizer CHECK failed: /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_poisoning.h:81 "((CanPoisonMemory())) != (0)" (0x0, 0x0)
    #​0 0x50e72b in __asan::AsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:73:5
    #​1 0x52b673 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:78:5
    #​2 0x5109a3 in __asan::FastPoisonShadowPartialRightRedzone(unsigned long, unsigned long, unsigned long, unsigned char) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_poisoning.h:81:3
    #​3 0x5109a3 in __asan::AsanThread::ClearShadowForThreadStackAndTLS() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:312
    #​4 0x51119d in __asan::AsanThread::Init(__asan::AsanThread::InitOptions const*) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:230:3
    #​5 0x51146a in __asan::AsanThread::ThreadStart(unsigned long long, __sanitizer::atomic_uintptr_t*) /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:247:3
    #​6 0x5115b6 in __asan::CreateMainThread() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_thread.cpp:280:16
    #​7 0x50dff3 in __asan::AsanInitInternal() /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:496:29
    #​8 0x50e4bd in __asan_init /local/scratch/alr48/cheri/upstream-llvm-project/compiler-rt/lib/asan/asan_rtl.cpp:638:3
    #​9 0x7fc8e632d855 (/lib64/ld-linux-x86-64.so.2+0x10855)
    #​10 0x7fc8e631e0c9 (/lib64/ld-linux-x86-64.so.2+0x10c9)
@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 10, 2021
@rorth
Copy link
Collaborator

rorth commented Jul 29, 2022

I've noticed that the situation has changed: e.g. on amd64-pc-solaris2.11 two of those tests XPASS now (and the 64-bit tests don't run since that ASan port is currently 32-bit only):

Unexpectedly Passed Tests (4):
  AddressSanitizer-i386-sunos :: TestCases/Posix/start-deactivated.cpp
  AddressSanitizer-i386-sunos :: TestCases/handle_noreturn_bug.cpp
  AddressSanitizer-i386-sunos-dynamic :: TestCases/Posix/start-deactivated.cpp
  AddressSanitizer-i386-sunos-dynamic :: TestCases/handle_noreturn_bug.cpp

On x86_64-pc-linux-gnu, all 5 tests above XPASS:

Unexpectedly Passed Tests (15):
  AddressSanitizer-i386-linux :: TestCases/Linux/activation-options.cpp
  AddressSanitizer-i386-linux :: TestCases/Linux/odr-violation.cpp
  AddressSanitizer-i386-linux :: TestCases/Linux/odr-vtable.cpp
  AddressSanitizer-i386-linux :: TestCases/Posix/start-deactivated.cpp
  AddressSanitizer-i386-linux :: TestCases/handle_noreturn_bug.cpp
  AddressSanitizer-i386-linux-dynamic :: TestCases/Linux/activation-options.cpp
  AddressSanitizer-i386-linux-dynamic :: TestCases/Linux/odr-violation.cpp
  AddressSanitizer-i386-linux-dynamic :: TestCases/Linux/odr-vtable.cpp
  AddressSanitizer-i386-linux-dynamic :: TestCases/Posix/start-deactivated.cpp
  AddressSanitizer-i386-linux-dynamic :: TestCases/handle_noreturn_bug.cpp
  AddressSanitizer-x86_64-linux :: TestCases/Linux/activation-options.cpp
  AddressSanitizer-x86_64-linux :: TestCases/Linux/odr-violation.cpp
  AddressSanitizer-x86_64-linux :: TestCases/Linux/odr-vtable.cpp
  AddressSanitizer-x86_64-linux :: TestCases/Posix/start-deactivated.cpp
  AddressSanitizer-x86_64-linux :: TestCases/handle_noreturn_bug.cpp

but for AddressSanitizer-x86_64-linux-dynamic. Quite ugly to handle in the testsuite, unfortunately.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla compiler-rt:asan Address sanitizer
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants