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

[sanitizer] Fix asserts in asan and tsan in pthread interceptors. #75394

Merged
merged 1 commit into from
Jan 11, 2024

Commits on Jan 11, 2024

  1. [sanitizer] Fix asserts in asan and tsan in pthread interceptors.

    Calling one of pthread join/detach interceptor on an already joined/detached
    thread causes asserts such as:
    
    AddressSanitizer: CHECK failed: sanitizer_thread_arg_retval.cpp:56 "((t)) != (0)" (0x0, 0x0) (tid=1236094)
        #0 0x555555634f8b in __asan::CheckUnwind() compiler-rt/lib/asan/asan_rtl.cpp:69:3
        llvm#1 0x55555564e06e in __sanitizer::CheckFailed(char const*, int, char const*, unsigned long long, unsigned long long) compiler-rt/lib/sanitizer_common/sanitizer_termination.cpp:86:24
        llvm#2 0x5555556491df in __sanitizer::ThreadArgRetval::BeforeJoin(unsigned long) const compiler-rt/lib/sanitizer_common/sanitizer_thread_arg_retval.cpp:56:3
        llvm#3 0x5555556198ed in Join<___interceptor_pthread_tryjoin_np(void*, void**)::<lambda()> > compiler-rt/lib/asan/../sanitizer_common/sanitizer_thread_arg_retval.h:74:26
        llvm#4 0x5555556198ed in pthread_tryjoin_np compiler-rt/lib/asan/asan_interceptors.cpp:311:29
    
    This change does 2 things:
    - Introduce a detect_invalid_join common flags
    - Replace CHECK assert by Report() and Die()
    goussepi committed Jan 11, 2024
    Configuration menu
    Copy the full SHA
    4e031a9 View commit details
    Browse the repository at this point in the history