On Tue, 20 Jul 2021 at 19:48, Evgenii Stepanov <euge...@google.com> wrote:
>
>
> On Tue, Jul 20, 2021 at 1:17 AM Dmitry Vyukov <dvyu...@google.com> wrote:
>>
>> The error reported by buildbot is:
>>
>> =================================================================
>> ==26030==ERROR: AddressSanitizer: SEGV on unknown address 0xeaf50000
>> (pc 0xeadd3514 bp 0xc83e6c68 sp 0xc83e6c00 T-1)
>> ==26030==The signal is caused by a READ memory access.
>>     #0 0xeadd3514 in GetThreadLocked
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_thread_registry.h:103:41
>>     #1 0xeadd3514 in GetThreadContextByTidLocked
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_thread.cpp:72:28
>>     #2 0xeadd3514 in __asan::GetCurrentThread()
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_thread.cpp:433:33
>>     #3 0xead771b4 in GetFakeStack
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp:188:19
>>     #4 0xead771b4 in GetFakeStackFastAlways
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp:204:10
>>     #5 0xead771b4 in OnMallocAlways
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp:220:19
>>     #6 0xead771b4 in __asan_stack_malloc_always_0
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp:256:1
>>     #7 0xad341ab0 in SignalHandler(int, siginfo*, void*)
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/test/asan/TestCases/Linux/uar_signals.cpp:19
>>     #8 0xeab4174c  (/apex/com.android.runtime/lib/bionic/libc.so+0x3374c)
>>     #9 0xead51da8 in __internal_syscall
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc:109:3
>>     #10 0xead51da8 in __sanitizer::internal_mmap(void*, unsigned long,
>> int, int, int, unsigned long long)
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:176:10
>>     #11 0xead53d18 in __sanitizer::MmapNamed(void*, unsigned long,
>> int, int, char const*)
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix.cpp:391:14
>>     #12 0xead5b89c in MmapFixed
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp:304:7
>>     #13 0xead5b89c in MmapFixedNoReserve
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp:318:10
>>     #14 0xead5b89c in __sanitizer::MmapFixedSuperNoReserve(unsigned
>> long, unsigned long, char const*)
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp:328:12
>>     #15 0xead59bb8 in __sanitizer::ReserveShadowMemoryRange(unsigned
>> long, unsigned long, char const*, bool)
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cpp:151:25
>>     #16 0xead76ca0 in PoisonAll
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp:80:3
>>     #17 0xead76ca0 in __asan::FakeStack::Destroy(int)
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_fake_stack.cpp:66:3
>>     #18 0xeadd2e68 in DeleteFakeStack
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_thread.h:98:8
>>     #19 0xeadd2e68 in __asan::AsanThread::Destroy()
>> /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/compiler-rt/lib/asan/asan_thread.cpp:116:5
>>     #20 0xeab8ea7e in pthread_key_clean_all() pthread_key.cpp
>>     #21 0xeab8e6ca in pthread_exit
>> (/apex/com.android.runtime/lib/bionic/libc.so+0x806ca)
>>     #22 0xeab8e620 in __pthread_start(void*) pthread_create.cpp
>>     #23 0xeab47902 in __start_thread clone.cpp
>>
>> The change dfd9808b6cea59ff075498ee7e6e57f2b5b3a798 did this:
>>
>>    // Should be guarded by ThreadRegistryLock.
>>    ThreadContextBase *GetThreadLocked(u32 tid) {
>> -    DCHECK_LT(tid, n_contexts_);
>> -    return threads_[tid];
>> +    return threads_.empty() ? nullptr : threads_[tid];
>>    }
>>
>> It started CHECK failing on Android with accessing threads_[0] when it
>> has 0 size.
>> Then we added this "threads_.empty() ? nullptr", but I think it only
>> masked the real problem.
>> The real problem is who/why is accessing threads_[0] before we
>> initialized the main thread. And I think this new crash answers this
>> -- a second thread calls GetThreadLocked(kMainThread) before we
>> initialized asan runtime and created the main thread.
>> I think we need to remove this "threads_.empty() ? nullptr" part and
>> instead ensure that runtime is initialized by the time of the call.
>
>
> Sounds right. I'm not sure how there can be a secondary thread while ASan 
> runtime is not initialized, we'll need to look into that. Can't promise a 
> quick resolution though.

Looking at the stack more closely, this happens in AsanThread::Destroy
after we destroyed the thread in ThreadRegistry:

void AsanThread::Destroy() {
...
      (asanThreadRegistry().FinishThread(tid) == ThreadStatusRunning);
...
    DeleteFakeStack(tid);


Maybe that's the problem.



>> On Tue, 20 Jul 2021 at 09:23, <llvm.buildmas...@lab.llvm.org> wrote:
>> >
>> > The Buildbot has detected a failed build on builder 
>> > sanitizer-x86_64-linux-android while building compiler-rt.
>> >
>> > Full details are available at:
>> >     https://lab.llvm.org/buildbot#builders/77/builds/7937
>> >
>> > Worker for this Build: sanitizer-buildbot6
>> > Blamelist:
>> >     Dmitry Vyukov <dvyu...@google.com>,
>> >     Johannes Doerfert <johan...@jdoerfert.de>
>> >
>> > BUILD FAILED: failed 'python 
>> > ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py'
>> >
>> > Step 2 (annotate) failure: 'python 
>> > ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py'
>> > python 
>> > ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py
>> >  in dir 
>> > /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build 
>> > (timeout 1200 secs)
>> >  watching logfiles {}
>> >  argv: [b'python', 
>> > b'../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py']
>> >  environment:
>> >   BUILDBOT_BLAMELIST=[]
>> >   BUILDBOT_BRANCH=main
>> >   BUILDBOT_BUILDERNAME=sanitizer-x86_64-linux-android
>> >   BUILDBOT_BUILDNUMBER=7937
>> >   BUILDBOT_CLOBBER=
>> >   BUILDBOT_GOT_REVISION=b899cd8edcb824c4e4f999ef254209060d1ab646
>> >   BUILDBOT_REVISION=adb55d7c326559e99f1eeb3234cdfaaf3c9010de
>> >   
>> > BUILDBOT_SCHEDULER=main:clang,compiler-rt,libcxx,libcxxabi,libunwind,lld,llvm
>> >   HOME=/var/lib/buildbot
>> >   INVOCATION_ID=c05ecc968f624671b2e2ffd0f558eeaa
>> >   JOURNAL_STREAM=9:2763
>> >   LANG=en_US.UTF-8
>> >   LOGNAME=buildbot
>> >   PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
>> >   
>> > PWD=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build
>> >   SHELL=/bin/bash
>> >   TERM=dumb
>> >   USER=buildbot
>> >  using PTY: False
>> > builder name: sanitizer-x86_64-linux-android
>> > sanitizer-x86_64-linux-android runs: bash 
>> > ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_android.sh
>> > + set -e
>> > + set -u
>> > +++ dirname 
>> > ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_android.sh
>> > ++ cd ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers
>> > ++ pwd
>> > + 
>> > HERE=/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers
>> > + . 
>> > /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_functions.sh
>> > ++ echo @@@BUILD_STEP Info@@@
>> > Step 21 (run lit tests [arm/crosshatch-userdebug/RP1A.201105.002]) 
>> > failure: run lit tests [arm/crosshatch-userdebug/RP1A.201105.002] (failure)
>> > ...
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/asan_preload_test-2.cpp (44 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/asan_preload_test-3.cpp (45 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/coverage-missing.cpp (46 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: TestCases/Linux/cuda_test.cpp 
>> > (47 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/dlopen-mixed-c-cxx.c (48 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/auto_memory_profile_test.cpp (49 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: TestCases/Linux/bzero.cpp (50 
>> > of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/calloc-preload.c (51 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/function-sections-are-bad.cpp (52 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/init-order-dlopen.cpp (53 of 1460)
>> > XFAIL: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/globals-gc-sections-lld.cpp (54 of 1460)
>> > XFAIL: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/asan_dlopen_test.cpp (55 of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/init_fini_sections.cpp (56 of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/asan_default_suppressions.cpp (57 of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/global-overflow-bfd.cpp (58 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/interface_symbols_linux.cpp (59 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/kernel-area.cpp (60 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: TestCases/Linux/leak.cpp (61 
>> > of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/leak_check_segv.cpp (62 of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/global-overflow-lld.cpp (63 of 1460)
>> > XFAIL: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/asan_rt_confict_test-1.cpp (64 of 1460)
>> > XFAIL: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/asan_rt_confict_test-2.cpp (65 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/malloc-in-qsort.cpp (66 of 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/long-object-path.cpp 
>> > (67 of 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/longjmp_chk.c (68 of 
>> > 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/local_alias.cpp (69 
>> > of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/aligned_delete_test.cpp (70 of 1460)
>> > XFAIL: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/interception_readdir_r_test.cpp (71 of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/initialization-bug-any-order.cpp (72 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/nohugepage_test.cpp (73 of 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/mincore.cpp (74 of 
>> > 1460)
>> > XFAIL: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/activation-options.cpp (75 of 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/clone_test.cpp (76 
>> > of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/new_delete_mismatch_global.cpp (77 of 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/memmem_test.cpp (78 
>> > of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/overflow-in-qsort.cpp (79 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/preinstalled_signal.cpp (80 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/print_memory_profile_test.cpp (81 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/printf-fortify-1.c (82 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/printf-fortify-2.c (83 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/printf-fortify-3.c (84 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/printf-fortify-4.c (85 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/printf-fortify-5.c (86 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/pthread_create_from_constructor.cpp (87 of 1460)
>> > PASS: AddressSanitizer-arm-android :: TestCases/Linux/clang_gcc_abi.cpp 
>> > (88 of 1460)
>> > PASS: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/new_delete_mismatch_stack.cpp (89 of 1460)
>> > XFAIL: AddressSanitizer-arm-android :: TestCases/Linux/ptrace.cpp (90 of 
>> > 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/read_binary_name_regtest.c (91 of 1460)
>> > UNSUPPORTED: AddressSanitizer-arm-android :: 
>> > TestCases/Linux/recoverable-lsan.cpp (92 of 1460)
>> >
>> > Sincerely,
>> > LLVM Buildbot
>> >

-- 
You received this message because you are subscribed to the Google Groups 
"address-sanitizer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to address-sanitizer+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/address-sanitizer/CACT4Y%2BaSY%3DtgWfufNp%3DLxyhiifqZf_5ZozZq5J0gN2P7uDQnxg%40mail.gmail.com.

Reply via email to