Skip to content

ThreadSanitizer reports a data race in lldb-vscode #54768

@JDevlieghere

Description

@JDevlieghere

VSCode/TestOptions.test fails when running under TSan

******************** TEST 'lldb-shell :: VSCode/TestOptions.test' FAILED ********************
Script:
--
: 'RUN: at line 1';   /Users/jonas/llvm/build-tsan/bin/lldb-vscode --help | /Users/jonas/llvm/build-tsan/bin/FileCheck /Users/jonas/llvm/llvm-project/lldb/test/Shell/VSCode/TestOptions.test
--
Exit Code: 134

Command Output (stderr):
--
==================
WARNING: ThreadSanitizer: data race (pid=37782)
  Write of size 1 at 0x000100b91960 by main thread:
    #0 lldb_vscode::ProgressEventReporter::~ProgressEventReporter() ProgressEvent.cpp:190 (lldb-vscode:arm64+0x10002c5cc)
    #1 lldb_vscode::ProgressEventReporter::~ProgressEventReporter() ProgressEvent.cpp:189 (lldb-vscode:arm64+0x10002c724)
    #2 lldb_vscode::VSCode::~VSCode() VSCode.cpp:61 (lldb-vscode:arm64+0x100031d04)
    #3 lldb_vscode::VSCode::~VSCode() VSCode.cpp:61 (lldb-vscode:arm64+0x10003110c)
    #4 cxa_at_exit_wrapper(void*) <null>:20144608 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x4c908)

  Previous read of size 1 at 0x000100b91960 by thread T1:
    #0 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, lldb_vscode::ProgressEventReporter::ProgressEventReporter(std::__1::function<void (lldb_vscode::ProgressEvent&)>)::$_0> >(void*) thread:298 (lldb-vscode:arm64+0x10002d62c)

  Location is global 'lldb_vscode::g_vsc' at 0x000100b916d0 (lldb-vscode+0x1000a5960)

  Thread T1 (tid=5495172, running) created by main thread at:
    #0 pthread_create <null>:20144608 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x2fe20)
    #1 lldb_vscode::ProgressEventReporter::ProgressEventReporter(std::__1::function<void (lldb_vscode::ProgressEvent&)>) ProgressEvent.cpp:181 (lldb-vscode:arm64+0x10002c500)
    #2 lldb_vscode::ProgressEventReporter::ProgressEventReporter(std::__1::function<void (lldb_vscode::ProgressEvent&)>) ProgressEvent.cpp:179 (lldb-vscode:arm64+0x10002c590)
    #3 lldb_vscode::VSCode::VSCode() VSCode.cpp:44 (lldb-vscode:arm64+0x100031918)
    #4 _GLOBAL__sub_I_VSCode.cpp VSCode.cpp (lldb-vscode:arm64+0x10003604c)
    #5 invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const <null>:20144608 (dyld:arm64e+0x15d8c)

SUMMARY: ThreadSanitizer: data race ProgressEvent.cpp:190 in lldb_vscode::ProgressEventReporter::~ProgressEventReporter()
==================

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions