Hi,
I got TSAN warnings when testing the hello world example in
*examples/cpp/helloworld/* (see detail warnings below). I also get similar
TSAN warnings in other examples. Is it a known issue with gRPC?
Thanks,
Hung
*greeter_client.cc *
~/working/grpc-cmake-template $ ./client/greeter_client
==================
WARNING: ThreadSanitizer: data race (pid=35434)
Read of size 8 at 0x7f7f6c1ec6c0 by main thread:
#0 memmove <null> (libtsan.so.0+0x42c9b)
#1 absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node** std::__copy_move<false, true,
std::random_access_iterator_tag>::__copy_m<absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node*>(absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node* const*,
absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node* const*,
absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node**) <null> (greeter_client+0x6ee12b)
#2
grpc_core::WorkSerializer::WorkSerializerImpl::Run(std::function<void ()>,
grpc_core::DebugLocation const&) <null> (greeter_client+0x2ad92b)
#3 grpc::internal::CallOpSet<grpc::internal::CallOpSendInitialMetadata,
grpc::internal::CallOpSendMessage,
grpc::internal::CallOpRecvInitialMetadata,
grpc::internal::CallOpRecvMessage<google::protobuf::MessageLite>,
grpc::internal::CallOpClientSendClose,
grpc::internal::CallOpClientRecvStatus>::FillOps(grpc::internal::Call*)
/home/hungptit/working/grpc-cmake-template/3p/include/grpcpp/impl/codegen/call_op_set.h:896
(greeter_client+0x7e068)
#4 grpc::Channel::PerformOpsOnCall(grpc::internal::CallOpSetInterface*,
grpc::internal::Call*) <null> (greeter_client+0x8c86d)
#5 grpc::internal::BlockingUnaryCallImpl<google::protobuf::MessageLite,
google::protobuf::MessageLite>::BlockingUnaryCallImpl(grpc::ChannelInterface*,
grpc::internal::RpcMethod const&, grpc::ClientContext*,
google::protobuf::MessageLite const&, google::protobuf::MessageLite*)
/home/hungptit/working/grpc-cmake-template/3p/include/grpcpp/impl/codegen/client_unary_call.h:80
(greeter_client+0x74453)
#6 grpc::Status
grpc::internal::BlockingUnaryCall<helloworld::HelloRequest,
helloworld::HelloReply, google::protobuf::MessageLite,
google::protobuf::MessageLite>(grpc::ChannelInterface*,
grpc::internal::RpcMethod const&, grpc::ClientContext*,
helloworld::HelloRequest const&, helloworld::HelloReply*)
/home/hungptit/working/grpc-cmake-template/3p/include/grpcpp/impl/codegen/client_unary_call.h:50
(greeter_client+0x722ee)
#7 helloworld::Greeter::Stub::SayHello(grpc::ClientContext*,
helloworld::HelloRequest const&, helloworld::HelloReply*)
/home/hungptit/working/grpc-cmake-template/proto/helloworld.grpc.pb.cc:39
(greeter_client+0x63e56)
#8 GreeterClient::SayHello(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&) <null>
(greeter_client+0x5da52)
#9 main
/home/hungptit/working/grpc-cmake-template/client/greeter_client.cpp:103
(greeter_client+0x5cc55)
Previous write of size 8 at 0x7f7f6c1ec6c0 by thread T3:
#0 memmove <null> (libtsan.so.0+0x42c9b)
#1 absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node** std::__copy_move<false, true,
std::random_access_iterator_tag>::__copy_m<absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node*>(absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node* const*,
absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node* const*,
absl::lts_2020_09_23::synchronization_internal::(anonymous
namespace)::Node**) <null> (greeter_client+0x6ee12b)
Thread T3 'grpc_global_tim' (tid=35438, running) created by main thread
at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_client+0x6be24a)
#2 grpc::ChannelCredentials::ChannelCredentials() <null>
(greeter_client+0x8ef60)
#3 __libc_start_main <null> (libc.so.6+0x23e39)
SUMMARY: ThreadSanitizer: data race
(/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libtsan.so.0+0x42c9b) in memmove
==================
Greeter received: Hello world
ThreadSanitizer: reported 1 warnings
*greeter_server.cc*
==================
WARNING: ThreadSanitizer: data race (pid=35355)
Read of size 8 at 0x7b8800003218 by thread T6:
#0 unsigned long const& std::min<unsigned long>(unsigned long const&,
unsigned long const&)
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/stl_algobase.h:235
(greeter_server+0x6857c)
#1 tcp_do_read((anonymous namespace)::grpc_tcp*) <null>
(greeter_server+0x317410)
Previous write of size 8 at 0x7b8800003218 by thread T5:
#0 operator new(unsigned long) <null> (libtsan.so.0+0x8bdbe)
#1 grpc_create_chttp2_transport(grpc_channel_args const*,
grpc_endpoint*, bool, grpc_resource_user*) <null> (greeter_server+0x4239da)
Location is heap block of size 5648 at 0x7b8800003000 allocated by thread
T5:
#0 operator new(unsigned long) <null> (libtsan.so.0+0x8bdbe)
#1 grpc_create_chttp2_transport(grpc_channel_args const*,
grpc_endpoint*, bool, grpc_resource_user*) <null> (greeter_server+0x4239da)
Thread T6 'grpcpp_sync_ser' (tid=35439, running) created by thread T5 at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
Thread T5 'grpcpp_sync_ser' (tid=35361, running) created by main thread
at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
#2 main
/home/hungptit/working/grpc-cmake-template/server/greeter_server.cpp:69
(greeter_server+0x65c05)
SUMMARY: ThreadSanitizer: data race
/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/include/g++-v10/bits/stl_algobase.h:235
in unsigned long const& std::min<unsigned long>(unsigned long const&,
unsigned long const&)
==================
==================
WARNING: ThreadSanitizer: data race (pid=35355)
Write of size 1 at 0x7b940000009a by thread T6:
#0 recvmsg <null> (libtsan.so.0+0x5907a)
#1 tcp_do_read((anonymous namespace)::grpc_tcp*) <null>
(greeter_server+0x31767c)
Previous write of size 8 at 0x7b9400000098 by thread T5:
#0 malloc <null> (libtsan.so.0+0x3047f)
#1 gpr_malloc <null> (greeter_server+0x71a5ab)
Location is heap block of size 8264 at 0x7b9400000000 allocated by thread
T5:
#0 malloc <null> (libtsan.so.0+0x3047f)
#1 gpr_malloc <null> (greeter_server+0x71a5ab)
Thread T6 'grpcpp_sync_ser' (tid=35439, running) created by thread T5 at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
Thread T5 'grpcpp_sync_ser' (tid=35361, running) created by main thread
at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
#2 main
/home/hungptit/working/grpc-cmake-template/server/greeter_server.cpp:69
(greeter_server+0x65c05)
SUMMARY: ThreadSanitizer: data race
(/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libtsan.so.0+0x5907a) in
__interceptor_recvmsg
==================
==================
WARNING: ThreadSanitizer: data race (pid=35355)
Write of size 8 at 0x7b8800004120 by thread T6:
#0 memcpy <null> (libtsan.so.0+0x4257b)
#1
grpc_chttp2_settings_parser_begin_frame(grpc_chttp2_settings_parser*,
unsigned int, unsigned char, unsigned int*) <null> (greeter_server+0x4ee4d7)
Previous write of size 8 at 0x7b8800004120 by thread T5:
#0 memcpy <null> (libtsan.so.0+0x4257b)
#1
grpc_chttp2_settings_parser_begin_frame(grpc_chttp2_settings_parser*,
unsigned int, unsigned char, unsigned int*) <null> (greeter_server+0x4ee4d7)
Location is heap block of size 5648 at 0x7b8800003000 allocated by thread
T5:
#0 operator new(unsigned long) <null> (libtsan.so.0+0x8bdbe)
#1 grpc_create_chttp2_transport(grpc_channel_args const*,
grpc_endpoint*, bool, grpc_resource_user*) <null> (greeter_server+0x4239da)
Thread T6 'grpcpp_sync_ser' (tid=35439, running) created by thread T5 at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
Thread T5 'grpcpp_sync_ser' (tid=35361, running) created by main thread
at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
#2 main
/home/hungptit/working/grpc-cmake-template/server/greeter_server.cpp:69
(greeter_server+0x65c05)
SUMMARY: ThreadSanitizer: data race
(/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libtsan.so.0+0x4257b) in
__interceptor_memcpy
==================
==================
WARNING: ThreadSanitizer: data race (pid=35355)
Write of size 1 at 0x7b880000413a by thread T6:
#0 memcpy <null> (libtsan.so.0+0x4257b)
#1
grpc_chttp2_settings_parser_begin_frame(grpc_chttp2_settings_parser*,
unsigned int, unsigned char, unsigned int*) <null> (greeter_server+0x4ee4d7)
Previous read of size 1 at 0x7b880000413a by thread T5:
#0 memcpy <null> (libtsan.so.0+0x4257b)
#1 grpc_chttp2_settings_parser_parse(void*, grpc_chttp2_transport*,
grpc_chttp2_stream*, grpc_slice const&, int) <null>
(greeter_server+0x4ee768)
Location is heap block of size 5648 at 0x7b8800003000 allocated by thread
T5:
#0 operator new(unsigned long) <null> (libtsan.so.0+0x8bdbe)
#1 grpc_create_chttp2_transport(grpc_channel_args const*,
grpc_endpoint*, bool, grpc_resource_user*) <null> (greeter_server+0x4239da)
Thread T6 'grpcpp_sync_ser' (tid=35439, running) created by thread T5 at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
Thread T5 'grpcpp_sync_ser' (tid=35361, running) created by main thread
at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
#2 main
/home/hungptit/working/grpc-cmake-template/server/greeter_server.cpp:69
(greeter_server+0x65c05)
SUMMARY: ThreadSanitizer: data race
(/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libtsan.so.0+0x4257b) in
__interceptor_memcpy
==================
==================
WARNING: ThreadSanitizer: data race (pid=35355)
Write of size 8 at 0x7b8800003230 by thread T6:
#0 memcpy <null> (libtsan.so.0+0x4257b)
#1 grpc_slice_buffer_swap <null> (greeter_server+0x32d9a8)
Previous write of size 8 at 0x7b8800003230 by thread T5:
#0 memcpy <null> (libtsan.so.0+0x4257b)
#1 grpc_slice_buffer_swap <null> (greeter_server+0x32d9a8)
Location is heap block of size 5648 at 0x7b8800003000 allocated by thread
T5:
#0 operator new(unsigned long) <null> (libtsan.so.0+0x8bdbe)
#1 grpc_create_chttp2_transport(grpc_channel_args const*,
grpc_endpoint*, bool, grpc_resource_user*) <null> (greeter_server+0x4239da)
Thread T6 'grpcpp_sync_ser' (tid=35439, running) created by thread T5 at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
Thread T5 'grpcpp_sync_ser' (tid=35361, running) created by main thread
at:
#0 pthread_create <null> (libtsan.so.0+0x5edc5)
#1 grpc_core::(anonymous
namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void
(*)(void*), void*, bool*, grpc_core::Thread::Options const&) <null>
(greeter_server+0x72088a)
#2 main
/home/hungptit/working/grpc-cmake-template/server/greeter_server.cpp:69
(greeter_server+0x65c05)
SUMMARY: ThreadSanitizer: data race
(/usr/lib/gcc/x86_64-pc-linux-gnu/10.2.0/libtsan.so.0+0x4257b) in
__interceptor_memcpy
==================
--
You received this message because you are subscribed to the Google Groups
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/grpc-io/CAJkfh3pOPaQQ9u-ONZA2merm4-9nyvn_6y20gnMrr%2B%3DmYTuqpA%40mail.gmail.com.