Skip to content

TSAN: data race in samples/ffi/async/async_test #55615

@rmacnak-google

Description

@rmacnak-google
WARNING: ThreadSanitizer: data race (pid=1111048)
  Write of size 1 at 0x7f89a35fd637 by thread T8:
    #0 dart::MyCallbackBlocking(long)::$_0::operator()() const out/ReleaseTSANX64/../../runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc:486:14 (libffi_test_functions.so+0x146d61)
    #1 decltype(std::declval<dart::MyCallbackBlocking(long)::$_0&>()()) std::_LIBCPP_ABI_NAMESPACE::__invoke[abi:v15000]<dart::MyCallbackBlocking(long)::$_0&>(dart::MyCallbackBlocking(long)::$_0&) out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/invoke.h:403:23 (libffi_test_functions.so+0x146d61)
    #2 void std::_LIBCPP_ABI_NAMESPACE::__invoke_void_return_wrapper<void, true>::__call<dart::MyCallbackBlocking(long)::$_0&>(dart::MyCallbackBlocking(long)::$_0&) out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/invoke.h:488:9 (libffi_test_functions.so+0x146d61)
    #3 std::_LIBCPP_ABI_NAMESPACE::__function::__alloc_func<dart::MyCallbackBlocking(long)::$_0, std::_LIBCPP_ABI_NAMESPACE::allocator<dart::MyCallbackBlocking(long)::$_0>, void ()>::operator()[abi:v15000]() out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/function.h:185:16 (libffi_test_functions.so+0x146d61)
    #4 std::_LIBCPP_ABI_NAMESPACE::__function::__func<dart::MyCallbackBlocking(long)::$_0, std::_LIBCPP_ABI_NAMESPACE::allocator<dart::MyCallbackBlocking(long)::$_0>, void ()>::operator()() out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/function.h:359:12 (libffi_test_functions.so+0x146d61)
    #5 std::_LIBCPP_ABI_NAMESPACE::__function::__value_func<void ()>::operator()[abi:v15000]() const out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/function.h:512:16 (libffi_test_functions.so+0x143662)
    #6 std::_LIBCPP_ABI_NAMESPACE::function<void ()>::operator()() const out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/function.h:1187:12 (libffi_test_functions.so+0x143662)
    #7 ExecuteCallback out/ReleaseTSANX64/../../runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc:608:3 (libffi_test_functions.so+0x143662)
    #8 <null> <null> (0x7f89b978868a)
    #9 dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:37:10 (dart+0x251a831)
    #10 dart::DartLibraryCalls::HandleMessage(long, dart::Instance const&) out/ReleaseTSANX64/../../runtime/vm/dart_entry.cc:717:28 (dart+0x251a831)
    #11 dart::IsolateMessageHandler::HandleMessage(std::_LIBCPP_ABI_NAMESPACE::unique_ptr<dart::Message, std::_LIBCPP_ABI_NAMESPACE::default_delete<dart::Message>>) out/ReleaseTSANX64/../../runtime/vm/isolate.cc:1425:15 (dart+0x2551c30)
    #12 dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool) out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:238:16 (dart+0x25925cf)
    #13 dart::MessageHandler::TaskCallback() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:457:18 (dart+0x2592c6c)
    #14 dart::MessageHandlerTask::Run() out/ReleaseTSANX64/../../runtime/vm/message_handler.cc:31:15 (dart+0x2593423)
    #15 dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:158:15 (dart+0x27856be)
    #16 dart::ThreadPool::Worker::Main(unsigned long) out/ReleaseTSANX64/../../runtime/vm/thread_pool.cc:330:9 (dart+0x2785bc7)
    #17 dart::ThreadStart(void*) out/ReleaseTSANX64/../../runtime/vm/os_thread_linux.cc:154:5 (dart+0x26a7423)

  Previous read of size 1 at 0x7f89a35fd637 by thread T10 (mutexes: write M0):
    #0 dart::MyCallbackBlocking(long) out/ReleaseTSANX64/../../runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc:492:11 (libffi_test_functions.so+0x142fb5)
    #1 dart::Work2() out/ReleaseTSANX64/../../runtime/bin/ffi_test/ffi_test_functions_vmspecific.cc:537:25 (libffi_test_functions.so+0x1433d4)
    #2 decltype(std::declval<void (*)()>()()) std::_LIBCPP_ABI_NAMESPACE::__invoke[abi:v15000]<void (*)()>(void (*&&)()) out/ReleaseTSANX64/../../third_party/libcxx/include/__functional/invoke.h:403:23 (libffi_test_functions.so+0x1462cb)
    #3 void std::_LIBCPP_ABI_NAMESPACE::__thread_execute[abi:v15000]<std::_LIBCPP_ABI_NAMESPACE::unique_ptr<std::_LIBCPP_ABI_NAMESPACE::__thread_struct, std::_LIBCPP_ABI_NAMESPACE::default_delete<std::_LIBCPP_ABI_NAMESPACE::__thread_struct>>, void (*)()>(std::_LIBCPP_ABI_NAMESPACE::tuple<std::_LIBCPP_ABI_NAMESPACE::unique_ptr<std::_LIBCPP_ABI_NAMESPACE::__thread_struct, std::_LIBCPP_ABI_NAMESPACE::default_delete<std::_LIBCPP_ABI_NAMESPACE::__thread_struct>>, void (*)()>&, std::_LIBCPP_ABI_NAMESPACE::__tuple_indices<...>) out/ReleaseTSANX64/../../third_party/libcxx/include/thread:284:5 (libffi_test_functions.so+0x1462cb)
    #4 void* std::_LIBCPP_ABI_NAMESPACE::__thread_proxy[abi:v15000]<std::_LIBCPP_ABI_NAMESPACE::tuple<std::_LIBCPP_ABI_NAMESPACE::unique_ptr<std::_LIBCPP_ABI_NAMESPACE::__thread_struct, std::_LIBCPP_ABI_NAMESPACE::default_delete<std::_LIBCPP_ABI_NAMESPACE::__thread_struct>>, void (*)()>>(void*) out/ReleaseTSANX64/../../third_party/libcxx/include/thread:295:5 (libffi_test_functions.so+0x1462cb)

python3 tools/test.py -n vm-tsan-linux-release-x64 samples/ffi/async/async_test

log

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3A lower priority bug or feature requestarea-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.triagedIssue has been triaged by sub team

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions