Skip to content

use-of-uninitialized-value in gRPC #66525

@tavplubix

Description

@tavplubix

https://s3.amazonaws.com/clickhouse-test-reports/61109/ce37be3ab1ab19088fac286c5733ca8d52a757e5/stress_test__msan_.html

==686==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55bc39fe7320 in grpc_event_engine::experimental::Epoll1Poller::ProcessEpollEvents(int, absl::InlinedVector<grpc_event_engine::experimental::Epoll1EventHandle*, 5ul, std::__1::allocator<grpc_event_engine::experimental::Epoll1EventHandle*>>&) build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc:445:9
    #1 0x55bc39fe7ec5 in grpc_event_engine::experimental::Epoll1Poller::Work(std::__1::chrono::duration<long, std::__1::ratio<1l, 1000000000l>>, absl::FunctionRef<void ()>) build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc:540:9
    #2 0x55bc39fb3313 in grpc_event_engine::experimental::PosixEventEngine::PollerWorkInternal(std::__1::shared_ptr<grpc_event_engine::experimental::PosixEnginePollerManager>) build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/posix_engine.cc:378:25
    #3 0x55bc39fc0b4e in grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0::operator()() const build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/posix_engine.cc:366:7
    #4 0x55bc39fc0b4e in decltype(std::declval<grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&>()()) std::__1::__invoke[abi:v15007]<grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&>(grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&) build_docker/./contrib/llvm-project/libcxx/include/__functional/invoke.h:394:23
    #5 0x55bc39fc0b4e in std::__1::invoke_result<grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&>::type std::__1::invoke<grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&>(grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&) build_docker/./contrib/llvm-project/libcxx/include/__functional/invoke.h:531:12
    #6 0x55bc39fc0b4e in void absl::internal_any_invocable::InvokeR<void, grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&, void>(grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&) build_docker/./contrib/abseil-cpp/absl/functional/internal/any_invocable.h:132:3
    #7 0x55bc39fc0b4e in void absl::internal_any_invocable::LocalInvoker<false, void, grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine()::$_0&>(absl::internal_any_invocable::TypeErasedState*) build_docker/./contrib/abseil-cpp/absl/functional/internal/any_invocable.h:310:10
    #8 0x55bc3a052a8f in absl::internal_any_invocable::Impl<void ()>::operator()() build_docker/./contrib/abseil-cpp/absl/functional/internal/any_invocable.h:868:1
    #9 0x55bc3a052a8f in grpc_event_engine::experimental::SelfDeletingClosure::Run() build_docker/./contrib/grpc/src/core/lib/event_engine/common_closures.h:56:5
    #10 0x55bc3a051cc7 in grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() build_docker/./contrib/grpc/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:473:14
    #11 0x55bc3a051087 in grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() build_docker/./contrib/grpc/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:390:10
    #12 0x55bc3a0532e6 in grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::operator()(void*) const build_docker/./contrib/grpc/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:205:17
    #13 0x55bc3a0532e6 in grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) build_docker/./contrib/grpc/src/core/lib/event_engine/thread_pool/work_stealing_thread_pool.cc:203:7
    #14 0x55bc3aac2b34 in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::operator()(void*) const build_docker/./contrib/grpc/src/core/lib/gprpp/posix/thd.cc:145:11
    #15 0x55bc3aac2b34 in grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) build_docker/./contrib/grpc/src/core/lib/gprpp/posix/thd.cc:115:9
    #16 0x7ff1b9bd5ac2  (/lib/x86_64-linux-gnu/libc.so.6+0x94ac2) (BuildId: 490fef8403240c91833978d494d39e537409b92e)
    #17 0x7ff1b9c6784f  (/lib/x86_64-linux-gnu/libc.so.6+0x12684f) (BuildId: 490fef8403240c91833978d494d39e537409b92e)

  Uninitialized value was created by a heap allocation
    #0 0x55bbff3266cc in operator new(unsigned long) (/usr/bin/clickhouse+0x80ad6cc) (BuildId: 4868eb8ff6d346aefe8c320de5476c68319c3cac)
    #1 0x55bc39fe8735 in grpc_event_engine::experimental::MakeEpoll1Poller(grpc_event_engine::experimental::Scheduler*) build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc:571:12
    #2 0x55bc39fe2a62 in grpc_event_engine::experimental::MakeDefaultPoller(grpc_event_engine::experimental::Scheduler*) build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/event_poller_posix_default.cc:45:16
    #3 0x55bc39fc0917 in grpc_event_engine::experimental::PosixEnginePollerManager::PosixEnginePollerManager(std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>) build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/posix_engine.cc:303:15
    #4 0x55bc39fc0917 in grpc_event_engine::experimental::PosixEnginePollerManager* std::__1::construct_at[abi:v15007]<grpc_event_engine::experimental::PosixEnginePollerManager, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&, grpc_event_engine::experimental::PosixEnginePollerManager*>(grpc_event_engine::experimental::PosixEnginePollerManager*, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&) build_docker/./contrib/llvm-project/libcxx/include/__memory/construct_at.h:35:48
    #5 0x55bc39fc0917 in void std::__1::allocator_traits<std::__1::allocator<grpc_event_engine::experimental::PosixEnginePollerManager>>::construct[abi:v15007]<grpc_event_engine::experimental::PosixEnginePollerManager, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&, void, void>(std::__1::allocator<grpc_event_engine::experimental::PosixEnginePollerManager>&, grpc_event_engine::experimental::PosixEnginePollerManager*, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&) build_docker/./contrib/llvm-project/libcxx/include/__memory/allocator_traits.h:298:9
    #6 0x55bc39fc0917 in std::__1::__shared_ptr_emplace<grpc_event_engine::experimental::PosixEnginePollerManager, std::__1::allocator<grpc_event_engine::experimental::PosixEnginePollerManager>>::__shared_ptr_emplace[abi:v15007]<std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&>(std::__1::allocator<grpc_event_engine::experimental::PosixEnginePollerManager>, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&) build_docker/./contrib/llvm-project/libcxx/include/__memory/shared_ptr.h:292:9
    #7 0x55bc39fb2927 in std::__1::shared_ptr<grpc_event_engine::experimental::PosixEnginePollerManager> std::__1::allocate_shared[abi:v15007]<grpc_event_engine::experimental::PosixEnginePollerManager, std::__1::allocator<grpc_event_engine::experimental::PosixEnginePollerManager>, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&, void>(std::__1::allocator<grpc_event_engine::experimental::PosixEnginePollerManager> const&, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&) build_docker/./contrib/llvm-project/libcxx/include/__memory/shared_ptr.h:953:55
    #8 0x55bc39fb2927 in std::__1::shared_ptr<grpc_event_engine::experimental::PosixEnginePollerManager> std::__1::make_shared[abi:v15007]<grpc_event_engine::experimental::PosixEnginePollerManager, std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&, void>(std::__1::shared_ptr<grpc_event_engine::experimental::ThreadPool>&) build_docker/./contrib/llvm-project/libcxx/include/__memory/shared_ptr.h:962:12
    #9 0x55bc39fb2927 in grpc_event_engine::experimental::PosixEventEngine::PosixEventEngine() build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/posix_engine.cc:361:21
    #10 0x55bc39fa8b59 in std::__1::__unique_if<grpc_event_engine::experimental::PosixEventEngine>::__unique_single std::__1::make_unique[abi:v15007]<grpc_event_engine::experimental::PosixEventEngine>() build_docker/./contrib/llvm-project/libcxx/include/__memory/unique_ptr.h:714:32
    #11 0x55bc39fa8b59 in grpc_event_engine::experimental::DefaultEventEngineFactory() build_docker/./contrib/grpc/src/core/lib/event_engine/default_event_engine_factory.cc:54:10
    #12 0x55bc39fa71c1 in grpc_event_engine::experimental::CreateEventEngineInner() build_docker/./contrib/grpc/src/core/lib/event_engine/default_event_engine.cc:68:10
    #13 0x55bc39fa71c1 in grpc_event_engine::experimental::CreateEventEngine() build_docker/./contrib/grpc/src/core/lib/event_engine/default_event_engine.cc:75:10
    #14 0x55bc39fa71c1 in grpc_event_engine::experimental::GetDefaultEventEngine(grpc_core::SourceLocation) build_docker/./contrib/grpc/src/core/lib/event_engine/default_event_engine.cc:89:39
    #15 0x55bc39fa7b7e in grpc_event_engine::experimental::(anonymous namespace)::EnsureEventEngineInChannelArgs(grpc_core::ChannelArgs) build_docker/./contrib/grpc/src/core/lib/event_engine/default_event_engine.cc:100:38
    #16 0x55bc39fa8a71 in decltype(std::declval<grpc_core::ChannelArgs (*&)(grpc_core::ChannelArgs)>()(std::declval<grpc_core::ChannelArgs>())) std::__1::__invoke[abi:v15007]<grpc_core::ChannelArgs (*&)(grpc_core::ChannelArgs), grpc_core::ChannelArgs>(grpc_core::ChannelArgs (*&)(grpc_core::ChannelArgs), grpc_core::ChannelArgs&&) build_docker/./contrib/llvm-project/libcxx/include/__functional/invoke.h:394:23
    #17 0x55bc39fa8a71 in grpc_core::ChannelArgs std::__1::__invoke_void_return_wrapper<grpc_core::ChannelArgs, false>::__call<grpc_core::ChannelArgs (*&)(grpc_core::ChannelArgs), grpc_core::ChannelArgs>(grpc_core::ChannelArgs (*&)(grpc_core::ChannelArgs), grpc_core::ChannelArgs&&) build_docker/./contrib/llvm-project/libcxx/include/__functional/invoke.h:470:16
    #18 0x55bc39fa8a71 in std::__1::__function::__default_alloc_func<grpc_core::ChannelArgs (*)(grpc_core::ChannelArgs), grpc_core::ChannelArgs (grpc_core::ChannelArgs)>::operator()[abi:v15007](grpc_core::ChannelArgs&&) build_docker/./contrib/llvm-project/libcxx/include/__functional/function.h:235:12
    #19 0x55bc39fa8a71 in grpc_core::ChannelArgs std::__1::__function::__policy_invoker<grpc_core::ChannelArgs (grpc_core::ChannelArgs)>::__call_impl<std::__1::__function::__default_alloc_func<grpc_core::ChannelArgs (*)(grpc_core::ChannelArgs), grpc_core::ChannelArgs (grpc_core::ChannelArgs)>>(std::__1::__function::__policy_storage const*, grpc_core::ChannelArgs&&) build_docker/./contrib/llvm-project/libcxx/include/__functional/function.h:716:16
    #20 0x55bc39f63e6e in std::__1::__function::__policy_func<grpc_core::ChannelArgs (grpc_core::ChannelArgs)>::operator()[abi:v15007](grpc_core::ChannelArgs&&) const build_docker/./contrib/llvm-project/libcxx/include/__functional/function.h:848:16
    #21 0x55bc39f63e6e in std::__1::function<grpc_core::ChannelArgs (grpc_core::ChannelArgs)>::operator()(grpc_core::ChannelArgs) const build_docker/./contrib/llvm-project/libcxx/include/__functional/function.h:1197:12
    #22 0x55bc39f63e6e in grpc_core::ChannelArgsPreconditioning::PreconditionChannelArgs(grpc_channel_args const*) const build_docker/./contrib/grpc/src/core/lib/channel/channel_args_preconditioning.cc:38:20
    #23 0x55bc3a30dff4 in grpc_server_create build_docker/./contrib/grpc/src/core/lib/surface/server.cc:1748:34
    #24 0x55bc39cfcb9b in grpc::Server::Server(grpc::ChannelArguments*, std::__1::shared_ptr<std::__1::vector<std::__1::unique_ptr<grpc::ServerCompletionQueue, std::__1::default_delete<grpc::ServerCompletionQueue>>, std::__1::allocator<std::__1::unique_ptr<grpc::ServerCompletionQueue, std::__1::default_delete<grpc::ServerCompletionQueue>>>>>, int, int, int, std::__1::vector<std::__1::shared_ptr<grpc::internal::ExternalConnectionAcceptorImpl>, std::__1::allocator<std::__1::shared_ptr<grpc::internal::ExternalConnectionAcceptorImpl>>>, grpc_server_config_fetcher*, grpc_resource_quota*, std::__1::vector<std::__1::unique_ptr<grpc::experimental::ServerInterceptorFactoryInterface, std::__1::default_delete<grpc::experimental::ServerInterceptorFactoryInterface>>, std::__1::allocator<std::__1::unique_ptr<grpc::experimental::ServerInterceptorFactoryInterface, std::__1::default_delete<grpc::experimental::ServerInterceptorFactoryInterface>>>>, grpc::experimental::ServerMetricRecorder*) build_docker/./contrib/grpc/src/cpp/server/server_cc.cc:963:13
    #25 0x55bc39cee2fe in grpc::ServerBuilder::BuildAndStart() build_docker/./contrib/grpc/src/cpp/server/server_builder.cc:365:44
    #26 0x55bc30f8ab39 in DB::GRPCServer::start() build_docker/./src/Server/GRPCServer.cpp:1921:27
    #27 0x55bc311697e2 in DB::ProtocolServerAdapter::GRPCServerAdapterImpl::start() build_docker/./src/Server/ProtocolServerAdapter.cpp:47:42
    #28 0x55bc17528692 in DB::ProtocolServerAdapter::start() build_docker/./src/Server/ProtocolServerAdapter.h:31:26
    #29 0x55bc17528692 in DB::Server::main(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>> const&) build_docker/./programs/server/Server.cpp:2201:24
    #30 0x55bc369463de in Poco::Util::Application::run() build_docker/./base/poco/Util/src/Application.cpp:315:8
    #31 0x55bc174eed6a in DB::Server::run() build_docker/./programs/server/Server.cpp:393:25
    #32 0x55bc3698d6bf in Poco::Util::ServerApplication::run(int, char**) build_docker/./base/poco/Util/src/ServerApplication.cpp:131:9
    #33 0x55bc174e7848 in mainEntryClickHouseServer(int, char**) build_docker/./programs/server/Server.cpp:199:20

SUMMARY: MemorySanitizer: use-of-uninitialized-value build_docker/./contrib/grpc/src/core/lib/event_engine/posix_engine/ev_epoll1_linux.cc:445:9 in grpc_event_engine::experimental::Epoll1Poller::ProcessEpollEvents(int, absl::InlinedVector<grpc_event_engine::experimental::Epoll1EventHandle*, 5ul, std::__1::allocator<grpc_event_engine::experimental::Epoll1EventHandle*>>&)

Metadata

Metadata

Labels

testingSpecial issue with list of bugs found by CI

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions