Skip to content

HWAddressSanitizer CHECK failed: [...]/compiler-rt/lib/hwasan/hwasan_thread.cpp:117 "((random_buffer_)) != (0)" (0x0, 0x0) #1242

@jiridanek

Description

@jiridanek

I got the following report from HWASAN. The error "((random_buffer_)) != (0) looks like failed assertion inside hwasan, not anything to do with my code. In addition, there is nothing from my code in the stack trace.

https://github.com/llvm/llvm-project/blob/2a3498e24f97d85ddd2bb25467ff6fc1f6baa5f1/compiler-rt/lib/hwasan/hwasan_thread.cpp#L109-L125

$ PATH+=:/home/ubuntu/llvm/install/bin HWASAN_OPTIONS="halt_on_error=false" /home/ubuntu/repos/qpid-proton-0.31.0/clang/cpp/container_test
TEST: test_container_default_container_id()
TEST: test_container_vhost()
TEST: test_container_capabilities()
TEST: test_container_default_vhost()
TEST: test_container_no_vhost()
TEST: test_container_bad_address()
TEST: test_container_stop()
TEST: test_container_schedule_nohang()
TEST: test_container_immediate_stop()
TEST: test_container_pre_stop()
TEST: test_container_schedule_stop()
TEST: test_container_mt_stop_empty()
TEST: test_container_mt_stop()
==97057==HWAddressSanitizer CHECK failed: /mnt/repos/llvm-project/compiler-rt/lib/hwasan/hwasan_thread.cpp:117 "((random_buffer_)) != (0)" (0x0, 0x0)
    #0 0xaaaac32410c4 in __hwasan::HWAsanCheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /mnt/repos/llvm-project/compiler-rt/lib/hwasan/hwasan.cpp:133:3
    #1 0xaaaac325e3a4 in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) /mnt/repos/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:78:24
    #2 0xaaaac324c758 in __hwasan::Thread::GenerateRandomTag() /mnt/repos/llvm-project/compiler-rt/lib/hwasan/hwasan_thread.cpp:117:7
    #3 0xaaaac324c758 in __hwasan::Thread::GenerateRandomTag() /mnt/repos/llvm-project/compiler-rt/lib/hwasan/hwasan_thread.cpp:110:7
    #4 0xaaaac32446c0 in __hwasan::HwasanDeallocate(__sanitizer::StackTrace*, void*) /mnt/repos/llvm-project/compiler-rt/lib/hwasan/hwasan_allocator.cpp:224:46
    #5 0xaaaac3246df8 in free /mnt/repos/llvm-project/compiler-rt/lib/hwasan/hwasan_interceptors.cpp:110:14
    #6 0xffffa7d7efcc in __res_iclose /build/glibc-w4ZToO/glibc-2.31/resolv/res-close.c:112:13
    #7 0xffffa7d7f01c in __res_thread_freeres /build/glibc-w4ZToO/glibc-2.31/resolv/res-close.c:138:3
    #8 0xffffa7d0d0e4 in __libc_thread_freeres /build/glibc-w4ZToO/glibc-2.31/malloc/thread-freeres.c:33:3
    #9 0xffffa80e4434 in start_thread /build/glibc-w4ZToO/glibc-2.31/nptl/pthread_create.c:491:3
    #10 0xffffa7d60f28  /build/glibc-w4ZToO/glibc-2.31/misc/../sysdeps/unix/sysv/linux/aarch64/clone.S:78

This is deterministic, happens on every run. The option halt_on_error=false is not working, there is one more test that is not being executed.

When I run with HWASAN_OPTIONS="random_tags=false", I get a clean run of the tests until the end, without any errors.

I still haven't looked into producing the prepossessed reproducer sources. I'll update the ticket when I have that.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions