Since the instructions for Arch installation did not succeed (it seems that Boost 1.72 is too old for this project), I used Boost 1.74 and 1.73 to test. I ran the fancon service
command in one terminal, and in the other fancon
, and said y
to test the fans. The fancon service
then segfaults. Also copied is the output from Valgrind.
==2618== Memcheck, a memory error detector
==2618== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2618== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==2618== Command: fancon service
==2618==
Service started
20/12/03 18:47 [2618] warning: hwmon4/fan1: skipping - curve not configured & sensor not configured
20/12/03 18:47 [2618] warning: hwmon4/fan2: skipping - curve not configured & sensor not configured
20/12/03 18:47 [2618] warning: hwmon4/fan3: skipping - curve not configured & sensor not configured
20/12/03 18:47 [2618] warning: hwmon4/fan4: skipping - curve not configured & sensor not configured
20/12/03 18:47 [2618] warning: hwmon4/fan5: skipping - curve not configured & sensor not configured
20/12/03 18:47 [2618] warning: hwmon4/fan6: skipping - curve not configured & sensor not configured
20/12/03 18:47 [2618] warning: hwmon4/fan7: skipping - curve not configured & sensor not configured
terminate called after throwing an instance of 'boost::wrapexcept<boost::lock_error>'
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
==2618==
==2618== Process terminating with default action of signal 6 (SIGABRT): dumping core
==2618== at 0x5549615: raise (in /usr/lib/libc-2.32.so)
==2618== by 0x5532861: abort (in /usr/lib/libc-2.32.so)
==2618== by 0x5265869: __gnu_cxx::__verbose_terminate_handler() [clone .cold] (vterminate.cc:95)
==2618== by 0x5271D99: __cxxabiv1::__terminate(void (*)()) (eh_terminate.cc:48)
==2618== by 0x5271E06: std::terminate() (eh_terminate.cc:58)
==2618== by 0x2CF10E: __clang_call_terminate (in /usr/local/bin/fancon)
==2618== by 0x3C1D3F: boost::thread::get_id() const (thread.hpp:712)
==2618== by 0x3C07F5: boost::thread::join() (thread.hpp:733)
==2618== by 0x3D63F8: fc::FanTask::join() (src/FanTask.cpp:18)
==2618== by 0x3C80CB: fc::Controller::test(fc::FanInterface&, bool, bool, std::shared_ptr<fc::Util::ObservableNumber<int> >) (src/Controller.cpp:133)
==2618== by 0x3AEFE3: fc::Service::Test(grpc::ServerContext*, fc_pb::TestRequest const*, grpc::ServerWriter<fc_pb::TestResponse>*) (src/Service.cpp:211)
==2618== by 0x3677AB: fc_pb::DService::Service::Service()::$_13::operator()(fc_pb::DService::Service*, grpc::ServerContext*, fc_pb::TestRequest const*, grpc::ServerWriter<fc_pb::TestResponse>*) const (src/proto/DevicesSpec.grpc.pb.cc:579)
==2618==
==2618== HEAP SUMMARY:
==2618== in use at exit: 427,334 bytes in 2,690 blocks
==2618== total heap usage: 10,146 allocs, 7,456 frees, 1,766,496 bytes allocated
==2618==
==2618== 24 bytes in 1 blocks are possibly lost in loss record 110 of 530
==2618== at 0x483ADEF: operator new(unsigned long) (vg_replace_malloc.c:342)
==2618== by 0x4EF6280: grpc_core::Server::ChannelData::InitTransport(grpc_core::RefCountedPtr<grpc_core::Server>, grpc_channel*, unsigned long, grpc_transport*, long) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF85BF: grpc_core::Server::SetupTransport(grpc_transport*, grpc_pollset*, grpc_channel_args const*, grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode> const&, grpc_resource_user*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E1775C: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9818B: grpc_core::ExecCtx::Flush() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E94437: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF2B9F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x50047D8: grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x5021B7C: grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E36C: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E5BC: grpc::ThreadManager::WorkerThread::Run() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x7A8C3D3: ??? (in /usr/lib/libgpr.so.13.0.0)
==2618==
==2618== 64 bytes in 2 blocks are possibly lost in loss record 278 of 530
==2618== at 0x483ADEF: operator new(unsigned long) (vg_replace_malloc.c:342)
==2618== by 0x35A026: CreateInternal<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &> (arena.h:511)
==2618== by 0x35A026: DoCreateMaybeMessage<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &> (arena.h:559)
==2618== by 0x35A026: CreateMaybeMessage<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &> (arena.h:565)
==2618== by 0x35A026: CreateNoMessage<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &> (arena.h:585)
==2618== by 0x35A026: Create<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > &> (arena.h:324)
==2618== by 0x35A026: google::protobuf::internal::ArenaStringPtr::CreateInstance(google::protobuf::Arena*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*) (arenastring.h:373)
==2618== by 0x35A319: google::protobuf::internal::ArenaStringPtr::Mutable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, google::protobuf::Arena*) (arenastring.h:96)
==2618== by 0x357ED6: fc_pb::TestRequest::_internal_mutable_device_label[abi:cxx11]() (src/proto/DevicesSpec.pb.h:3990)
==2618== by 0x34FD17: fc_pb::TestRequest::_InternalParse(char const*, google::protobuf::internal::ParseContext*) (src/proto/DevicesSpec.pb.cc:2782)
==2618== by 0x4AD883F: bool google::protobuf::internal::MergeFromImpl<false>(google::protobuf::io::ZeroCopyInputStream*, google::protobuf::MessageLite*, google::protobuf::MessageLite::ParseFlags) (in /usr/lib/libprotobuf.so.23.0.4)
==2618== by 0x3AD0F2: grpc::Status grpc::GenericDeserialize<grpc::ProtoBufferReader, fc_pb::TestRequest>(grpc::ByteBuffer*, google::protobuf::MessageLite*) (proto_utils.h:86)
==2618== by 0x3ACEDA: grpc::SerializationTraits<fc_pb::TestRequest, void>::Deserialize(grpc::ByteBuffer*, google::protobuf::MessageLite*) (proto_utils.h:112)
==2618== by 0x3AB6E5: grpc::internal::ServerStreamingHandler<fc_pb::DService::Service, fc_pb::TestRequest, fc_pb::TestResponse>::Deserialize(grpc_call*, grpc_byte_buffer*, grpc::Status*, void**) (method_handler.h:218)
==2618== by 0x5029B95: grpc::Server::SyncRequestThreadManager::DoWork(void*, bool, bool) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E424: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E5BC: grpc::ThreadManager::WorkerThread::Run() (in /usr/lib/libgrpc++.so.1.33.2)
==2618==
==2618== 71 bytes in 1 blocks are possibly lost in loss record 283 of 530
==2618== at 0x483ADEF: operator new(unsigned long) (vg_replace_malloc.c:342)
==2618== by 0x52B6A39: allocate (new_allocator.h:115)
==2618== by 0x52B6A39: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (basic_string.tcc:1060)
==2618== by 0x52B8779: _S_construct<char*> (basic_string.tcc:580)
==2618== by 0x52B8779: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (basic_string.tcc:565)
==2618== by 0x52B8C56: _S_construct_aux<char const*> (basic_string.h:5121)
==2618== by 0x52B8C56: _S_construct<char const*> (basic_string.h:5142)
==2618== by 0x52B8C56: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (basic_string.tcc:667)
==2618== by 0x5299039: std::runtime_error::runtime_error(char const*) (cow-stdexcept.cc:122)
==2618== by 0x498206B: boost::mutex::lock() (in /usr/lib/libboost_thread.so.1.74.0)
==2618== by 0x4978646: boost::thread::native_handle() (in /usr/lib/libboost_thread.so.1.74.0)
==2618== by 0x3C1CF1: boost::thread::get_id() const (thread.hpp:712)
==2618== by 0x3C07F5: boost::thread::join() (thread.hpp:733)
==2618== by 0x3D63F8: fc::FanTask::join() (src/FanTask.cpp:18)
==2618== by 0x3C80CB: fc::Controller::test(fc::FanInterface&, bool, bool, std::shared_ptr<fc::Util::ObservableNumber<int> >) (src/Controller.cpp:133)
==2618== by 0x3AEFE3: fc::Service::Test(grpc::ServerContext*, fc_pb::TestRequest const*, grpc::ServerWriter<fc_pb::TestResponse>*) (src/Service.cpp:211)
==2618==
==2618== 184 bytes in 1 blocks are possibly lost in loss record 348 of 530
==2618== at 0x483ADEF: operator new(unsigned long) (vg_replace_malloc.c:342)
==2618== by 0x4EF7787: grpc_core::Server::RequestRegisteredCall(grpc_core::Server::RegisteredMethod*, grpc_call**, gpr_timespec*, grpc_metadata_array*, grpc_byte_buffer**, grpc_completion_queue*, grpc_completion_queue*, void*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF80DA: grpc_server_request_registered_call (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x50274BC: grpc::Server::SyncRequest::Request(grpc_server*, grpc_completion_queue*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x5029C5D: grpc::Server::SyncRequestThreadManager::DoWork(void*, bool, bool) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E424: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E5BC: grpc::ThreadManager::WorkerThread::Run() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x7A8C3D3: ??? (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x48853E8: start_thread (in /usr/lib/libpthread-2.32.so)
==2618== by 0x560C292: clone (in /usr/lib/libc-2.32.so)
==2618==
==2618== 240 bytes in 1 blocks are possibly lost in loss record 365 of 530
==2618== at 0x483A77F: malloc (vg_replace_malloc.c:307)
==2618== by 0x5270BC4: __cxa_allocate_exception (eh_alloc.cc:284)
==2618== by 0x4976632: void boost::throw_exception<boost::lock_error>(boost::lock_error const&) (in /usr/lib/libboost_thread.so.1.74.0)
==2618== by 0x49820A8: boost::mutex::lock() (in /usr/lib/libboost_thread.so.1.74.0)
==2618== by 0x4978646: boost::thread::native_handle() (in /usr/lib/libboost_thread.so.1.74.0)
==2618== by 0x3C1CF1: boost::thread::get_id() const (thread.hpp:712)
==2618== by 0x3C07F5: boost::thread::join() (thread.hpp:733)
==2618== by 0x3D63F8: fc::FanTask::join() (src/FanTask.cpp:18)
==2618== by 0x3C80CB: fc::Controller::test(fc::FanInterface&, bool, bool, std::shared_ptr<fc::Util::ObservableNumber<int> >) (src/Controller.cpp:133)
==2618== by 0x3AEFE3: fc::Service::Test(grpc::ServerContext*, fc_pb::TestRequest const*, grpc::ServerWriter<fc_pb::TestResponse>*) (src/Service.cpp:211)
==2618== by 0x3677AB: fc_pb::DService::Service::Service()::$_13::operator()(fc_pb::DService::Service*, grpc::ServerContext*, fc_pb::TestRequest const*, grpc::ServerWriter<fc_pb::TestResponse>*) const (src/proto/DevicesSpec.grpc.pb.cc:579)
==2618== by 0x367742: grpc::Status std::__invoke_impl<grpc::Status, fc_pb::DService::Service::Service()::$_13&, fc_pb::DService::Service*, grpc::ServerContext*, fc_pb::TestRequest const*, grpc::ServerWriter<fc_pb::TestResponse>*>(std::__invoke_other, fc_pb::DService::Service::Service()::$_13&, fc_pb::DService::Service*&&, grpc::ServerContext*&&, fc_pb::TestRequest const*&&, grpc::ServerWriter<fc_pb::TestResponse>*&&) (invoke.h:60)
==2618==
==2618== 326 bytes in 46 blocks are definitely lost in loss record 394 of 530
==2618== at 0x483A77F: malloc (vg_replace_malloc.c:307)
==2618== by 0x559BB4E: strdup (in /usr/lib/libc-2.32.so)
==2618== by 0x49BD442: sensors_get_label (in /usr/lib/libsensors.so.5.0.0)
==2618== by 0x3D8159: fc::SensorChips::enumerate(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::unique_ptr<fc::FanInterface, std::default_delete<fc::FanInterface> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<fc::FanInterface, std::default_delete<fc::FanInterface> > > > >&, std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::shared_ptr<fc::SensorInterface>, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::shared_ptr<fc::SensorInterface> > > >&) (src/Devices.cpp:25)
==2618== by 0x3DA55B: fc::Devices::Devices(bool) (src/Devices.cpp:85)
==2618== by 0x3C62C0: fc::Controller::reload(bool) (src/Controller.cpp:89)
==2618== by 0x3C6079: fc::Controller::Controller(std::filesystem::__cxx11::path) (src/Controller.cpp:12)
==2618== by 0x3AD2D0: fc::Service::Service(std::filesystem::__cxx11::path const&, bool) (src/Service.cpp:4)
==2618== by 0x2CD3E6: main (src/main.cpp:34)
==2618==
==2618== 384 bytes in 1 blocks are possibly lost in loss record 407 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x40142EB: _dl_allocate_tls (in /usr/lib/ld-2.32.so)
==2618== by 0x488613C: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.32.so)
==2618== by 0x7A8C5AC: grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4E9895A: grpc_core::Executor::SetThreading(bool) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E993EE: grpc_core::Executor::InitAll() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9AA11: grpc_iomgr_init() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF3DDE: grpc_init (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x36F4FA: grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) (grpc_library.h:45)
==2618== by 0x4FFD73E: grpc::ChannelCredentials::ChannelCredentials() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x4FFD98B: grpc::InsecureChannelCredentials() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x3BF4F4: fc::Client::service_running() (src/Client.cpp:301)
==2618==
==2618== 384 bytes in 1 blocks are possibly lost in loss record 408 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x40142EB: _dl_allocate_tls (in /usr/lib/ld-2.32.so)
==2618== by 0x488613C: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.32.so)
==2618== by 0x7A8C5AC: grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4E9895A: grpc_core::Executor::SetThreading(bool) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E993FB: grpc_core::Executor::InitAll() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9AA11: grpc_iomgr_init() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF3DDE: grpc_init (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x36F4FA: grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) (grpc_library.h:45)
==2618== by 0x4FFD73E: grpc::ChannelCredentials::ChannelCredentials() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x4FFD98B: grpc::InsecureChannelCredentials() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x3BF4F4: fc::Client::service_running() (src/Client.cpp:301)
==2618==
==2618== 384 bytes in 1 blocks are possibly lost in loss record 409 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x40142EB: _dl_allocate_tls (in /usr/lib/ld-2.32.so)
==2618== by 0x488613C: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.32.so)
==2618== by 0x7A8C5AC: grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4EAF872: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF3EBA: grpc_init (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x36F4FA: grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) (grpc_library.h:45)
==2618== by 0x4FFD73E: grpc::ChannelCredentials::ChannelCredentials() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x4FFD98B: grpc::InsecureChannelCredentials() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x3BF4F4: fc::Client::service_running() (src/Client.cpp:301)
==2618== by 0x2CD071: main (src/main.cpp:26)
==2618==
==2618== 384 bytes in 1 blocks are possibly lost in loss record 410 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x40142EB: _dl_allocate_tls (in /usr/lib/ld-2.32.so)
==2618== by 0x488613C: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.32.so)
==2618== by 0x7A8C5AC: grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4EAF872: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EAFE74: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x7A8C3D3: ??? (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x48853E8: start_thread (in /usr/lib/libpthread-2.32.so)
==2618== by 0x560C292: clone (in /usr/lib/libc-2.32.so)
==2618==
==2618== 384 bytes in 1 blocks are possibly lost in loss record 411 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x40142EB: _dl_allocate_tls (in /usr/lib/ld-2.32.so)
==2618== by 0x488613C: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.32.so)
==2618== by 0x7A8C5AC: grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x502DDD8: grpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E071: grpc::ThreadManager::Initialize() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x501F3D4: grpc::Server::Start(grpc::ServerCompletionQueue**, unsigned long) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x501B28F: grpc::ServerBuilder::BuildAndStart() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x3AD966: fc::Service::run() (src/Service.cpp:22)
==2618== by 0x2CD401: main (src/main.cpp:36)
==2618==
==2618== 416 bytes in 4 blocks are possibly lost in loss record 416 of 530
==2618== at 0x483A6AF: malloc (vg_replace_malloc.c:306)
==2618== by 0x7A88281: gpr_realloc (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4EE813A: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EEA4BE: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF514F: grpc_core::Server::CallData::RecvInitialMetadataReady(void*, grpc_error*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E12B7F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9818B: grpc_core::ExecCtx::Flush() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E94437: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF2B9F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x50047D8: grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x5021B7C: grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E36C: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618==
==2618== 504 bytes in 1 blocks are possibly lost in loss record 429 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x7A88243: gpr_zalloc (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4E6FDB9: grpc_channel_stack_builder_finish(grpc_channel_stack_builder*, unsigned long, int, void (*)(void*, grpc_error*), void*, void**) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EED888: grpc_channel_create_with_builder(grpc_channel_stack_builder*, grpc_channel_stack_type) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EEDE3D: grpc_channel_create(char const*, grpc_channel_args const*, grpc_channel_stack_type, grpc_transport*, grpc_resource_user*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF84E2: grpc_core::Server::SetupTransport(grpc_transport*, grpc_pollset*, grpc_channel_args const*, grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode> const&, grpc_resource_user*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E1775C: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9818B: grpc_core::ExecCtx::Flush() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E94437: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF2B9F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x50047D8: grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x5021B7C: grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618==
==2618== 768 bytes in 2 blocks are possibly lost in loss record 448 of 530
==2618== at 0x483CB65: calloc (vg_replace_malloc.c:760)
==2618== by 0x40142EB: _dl_allocate_tls (in /usr/lib/ld-2.32.so)
==2618== by 0x488613C: pthread_create@@GLIBC_2.2.5 (in /usr/lib/libpthread-2.32.so)
==2618== by 0x7A8C5AC: grpc_core::Thread::Thread(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x502DDD8: grpc::ThreadManager::WorkerThread::WorkerThread(grpc::ThreadManager*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E494: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E5BC: grpc::ThreadManager::WorkerThread::Run() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x7A8C3D3: ??? (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x48853E8: start_thread (in /usr/lib/libpthread-2.32.so)
==2618== by 0x560C292: clone (in /usr/lib/libc-2.32.so)
==2618==
==2618== 1,280 bytes in 4 blocks are possibly lost in loss record 472 of 530
==2618== at 0x483A77F: malloc (vg_replace_malloc.c:307)
==2618== by 0x7A8820E: gpr_malloc (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4EE78CA: grpc_raw_compressed_byte_buffer_create (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EEA99B: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E14038: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E1123F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9818B: grpc_core::ExecCtx::Flush() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E94437: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF2B9F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x50047D8: grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x5021B7C: grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E36C: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618==
==2618== 2,880 bytes in 1 blocks are possibly lost in loss record 505 of 530
==2618== at 0x483ADEF: operator new(unsigned long) (vg_replace_malloc.c:342)
==2618== by 0x4EF62CB: grpc_core::Server::ChannelData::InitTransport(grpc_core::RefCountedPtr<grpc_core::Server>, grpc_channel*, unsigned long, grpc_transport*, long) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF85BF: grpc_core::Server::SetupTransport(grpc_transport*, grpc_pollset*, grpc_channel_args const*, grpc_core::RefCountedPtr<grpc_core::channelz::SocketNode> const&, grpc_resource_user*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E1775C: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9818B: grpc_core::ExecCtx::Flush() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E94437: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF2B9F: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x50047D8: grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x5021B7C: grpc::Server::SyncRequestThreadManager::PollForWork(void**, bool*) (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E36C: grpc::ThreadManager::MainWorkLoop() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x502E5BC: grpc::ThreadManager::WorkerThread::Run() (in /usr/lib/libgrpc++.so.1.33.2)
==2618== by 0x7A8C3D3: ??? (in /usr/lib/libgpr.so.13.0.0)
==2618==
==2618== 84,945 bytes in 7 blocks are possibly lost in loss record 530 of 530
==2618== at 0x483A77F: malloc (vg_replace_malloc.c:307)
==2618== by 0x7A8820E: gpr_malloc (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x7A882C1: gpr_malloc_aligned (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x7A8AFF1: grpc_core::Arena::CreateWithAlloc(unsigned long, unsigned long) (in /usr/lib/libgpr.so.13.0.0)
==2618== by 0x4EEBE87: grpc_call_create(grpc_call_create_args const*, grpc_call**) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4EF73CE: grpc_core::Server::ChannelData::AcceptStream(void*, grpc_transport*, void const*) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E1F425: grpc_chttp2_parsing_accept_stream(grpc_chttp2_transport*, unsigned int) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E2D8CD: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E2E739: grpc_chttp2_perform_read(grpc_chttp2_transport*, grpc_slice const&) (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E2172A: ??? (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E8DAF5: grpc_combiner_continue_exec_ctx() (in /usr/lib/libgrpc.so.13.0.0)
==2618== by 0x4E9813F: grpc_core::ExecCtx::Flush() (in /usr/lib/libgrpc.so.13.0.0)
==2618==
==2618== LEAK SUMMARY:
==2618== definitely lost: 326 bytes in 46 blocks
==2618== indirectly lost: 0 bytes in 0 blocks
==2618== possibly lost: 93,296 bytes in 30 blocks
==2618== still reachable: 333,712 bytes in 2,614 blocks
==2618== of which reachable via heuristic:
==2618== stdstring : 71 bytes in 1 blocks
==2618== newarray : 408 bytes in 2 blocks
==2618== suppressed: 0 bytes in 0 blocks
==2618== Reachable blocks (those to which a pointer was found) are not shown.
==2618== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==2618==
==2618== For lists of detected and suppressed errors, rerun with: -s
==2618== ERROR SUMMARY: 17 errors from 17 contexts (suppressed: 0 from 0)
Aborted
It should let me configure and test fans, I guess.