Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C++: Valgrind Memory leak #14794

Closed
sgaisser opened this issue Nov 17, 2023 · 2 comments
Closed

C++: Valgrind Memory leak #14794

sgaisser opened this issue Nov 17, 2023 · 2 comments
Assignees

Comments

@sgaisser
Copy link

sgaisser commented Nov 17, 2023

What version of protobuf and what language are you using?
Version: 4.25.0 (archlinux protobuf version 25.0-1) (absl version 20230802.1-1)
Language: C++

What operating system (Linux, Windows, ...) and version?

Linux (arch 6.6.1-arch1-1)

What runtime / compiler are you using (e.g., python version or gcc version)

gcc 13.2.1 20230801
clang 16.0.6

What did you do?
Steps to reproduce the behavior:
Example proto:

syntax = "proto3";

message Test {
 int32 number = 1;
}

Example code:

#include <google/protobuf/message_lite.h>
#include <iostream>
#include "test.pb.h"

int main(){
    GOOGLE_PROTOBUF_VERIFY_VERSION;
    {
        Test test;
        test.set_number(1);
        std::cout << "Test: " << test.DebugString() <<  std::endl;
    }
    google::protobuf::ShutdownProtobufLibrary();
    return 0;
}
valgrind --leak-check=full ./test

What did you expect to see

No leak as with versions <=4.24

What did you see instead?

Error
==68934== HEAP SUMMARY:
==68934==     in use at exit: 616 bytes in 14 blocks
==68934==   total heap usage: 4,871 allocs, 4,857 frees, 378,264 bytes allocated
==68934== 
==68934== 32 bytes in 1 blocks are possibly lost in loss record 1 of 6
==68934==    at 0x4841FC3: operator new(unsigned long) (vg_replace_malloc.c:472)
==68934==    by 0x4A7E8B0: UnknownInlinedFun (port.h:86)
==68934==    by 0x4A7E8B0: UnknownInlinedFun (port.h:79)
==68934==    by 0x4A7E8B0: google::protobuf::internal::RepeatedPtrFieldBase::InternalExtend(int) (repeated_ptr_field.cc:50)
==68934==    by 0x4A7E945: google::protobuf::internal::RepeatedPtrFieldBase::AddOutOfLineHelper(void*) (repeated_ptr_field.cc:119)
==68934==    by 0x4A0BD62: UnknownInlinedFun (repeated_ptr_field.h:236)
==68934==    by 0x4A0BD62: UnknownInlinedFun (repeated_ptr_field.h:230)
==68934==    by 0x4A0BD62: UnknownInlinedFun (generated_message_tctable_lite.cc:474)
==68934==    by 0x4A0BD62: google::protobuf::internal::TcParser::FastMtR1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:521)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x498DA26: google::protobuf::internal::ParseNoReflection(std::basic_string_view<char, std::char_traits<char> >, google::protobuf::MessageLite&) (descriptor.cc:9520)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1097)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1102)
==68934==    by 0x497E584: google::protobuf::DescriptorBuilder::BuildFileImpl(google::protobuf::FileDescriptorProto const&, google::protobuf::internal::FlatAllocator&) (descriptor.cc:5672)
==68934==    by 0x497F978: google::protobuf::DescriptorBuilder::BuildFile(google::protobuf::FileDescriptorProto const&) (descriptor.cc:5632)
==68934==    by 0x498033E: google::protobuf::DescriptorPool::BuildFileFromDatabase(google::protobuf::FileDescriptorProto const&) const (descriptor.cc:4551)
==68934==    by 0x496D405: google::protobuf::DescriptorPool::TryFindFileInFallbackDatabase(std::basic_string_view<char, std::char_traits<char> >) const (descriptor.cc:2563)
==68934==    by 0x496D956: google::protobuf::DescriptorPool::FindFileByName(std::basic_string_view<char, std::char_traits<char> >) const (descriptor.cc:2143)
==68934==    by 0x4A02C1C: google::protobuf::(anonymous namespace)::AssignDescriptorsImpl(google::protobuf::internal::DescriptorTable const*, bool) [clone .lto_priv.0] (generated_message_reflection.cc:3626)
==68934== 
==68934== 96 bytes in 3 blocks are possibly lost in loss record 3 of 6
==68934==    at 0x4843223: operator new[](unsigned long) (vg_replace_malloc.c:714)
==68934==    by 0x49E10F9: UnknownInlinedFun (arena.h:298)
==68934==    by 0x49E10F9: UnknownInlinedFun (arena.h:289)
==68934==    by 0x49E10F9: google::protobuf::internal::ExtensionSet::GrowCapacity(unsigned long) (extension_set.cc:1647)
==68934==    by 0x49D6BC6: google::protobuf::internal::ExtensionSet::Insert(int) (extension_set.cc:1618)
==68934==    by 0x49D6E25: google::protobuf::internal::ExtensionSet::MaybeNewExtension(int, google::protobuf::FieldDescriptor const*, google::protobuf::internal::ExtensionSet::Extension**) (extension_set.cc:1277)
==68934==    by 0x49D7E33: google::protobuf::internal::ExtensionSet::MutableMessage(int, unsigned char, google::protobuf::MessageLite const&, google::protobuf::FieldDescriptor const*) (extension_set.cc:598)
==68934==    by 0x49E85B1: UnknownInlinedFun (extension_set_inl.h:171)
==68934==    by 0x49E85B1: google::protobuf::internal::ExtensionSet::ParseField(unsigned long, char const*, google::protobuf::Message const*, google::protobuf::internal::InternalMetadata*, google::protobuf::internal::ParseContext*) (extension_set_heavy.cc:319)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x4A0A9B8: UnknownInlinedFun (parse_context.h:519)
==68934==    by 0x4A0A9B8: UnknownInlinedFun (generated_message_tctable_lite.cc:392)
==68934==    by 0x4A0A9B8: google::protobuf::internal::TcParser::FastMtS1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:427)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x4A0BCAA: UnknownInlinedFun (parse_context.h:519)
==68934==    by 0x4A0BCAA: UnknownInlinedFun (generated_message_tctable_lite.cc:480)
==68934==    by 0x4A0BCAA: google::protobuf::internal::TcParser::FastMtR1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:521)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x498DA26: google::protobuf::internal::ParseNoReflection(std::basic_string_view<char, std::char_traits<char> >, google::protobuf::MessageLite&) (descriptor.cc:9520)
==68934== 
==68934== 96 bytes in 3 blocks are possibly lost in loss record 4 of 6
==68934==    at 0x4841FC3: operator new(unsigned long) (vg_replace_malloc.c:472)
==68934==    by 0x495BCCA: UnknownInlinedFun (arena.h:454)
==68934==    by 0x495BCCA: UnknownInlinedFun (arena.h:535)
==68934==    by 0x495BCCA: UnknownInlinedFun (arena.h:562)
==68934==    by 0x495BCCA: UnknownInlinedFun (arena.h:575)
==68934==    by 0x495BCCA: UnknownInlinedFun (message_lite.h:505)
==68934==    by 0x495BCCA: pb::CppFeatures::New(google::protobuf::Arena*) const (cpp_features.pb.h:162)
==68934==    by 0x49D7E76: google::protobuf::internal::ExtensionSet::MutableMessage(int, unsigned char, google::protobuf::MessageLite const&, google::protobuf::FieldDescriptor const*) (extension_set.cc:603)
==68934==    by 0x49E85B1: UnknownInlinedFun (extension_set_inl.h:171)
==68934==    by 0x49E85B1: google::protobuf::internal::ExtensionSet::ParseField(unsigned long, char const*, google::protobuf::Message const*, google::protobuf::internal::InternalMetadata*, google::protobuf::internal::ParseContext*) (extension_set_heavy.cc:319)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x4A0A9B8: UnknownInlinedFun (parse_context.h:519)
==68934==    by 0x4A0A9B8: UnknownInlinedFun (generated_message_tctable_lite.cc:392)
==68934==    by 0x4A0A9B8: google::protobuf::internal::TcParser::FastMtS1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:427)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x4A0BCAA: UnknownInlinedFun (parse_context.h:519)
==68934==    by 0x4A0BCAA: UnknownInlinedFun (generated_message_tctable_lite.cc:480)
==68934==    by 0x4A0BCAA: google::protobuf::internal::TcParser::FastMtR1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:521)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x498DA26: google::protobuf::internal::ParseNoReflection(std::basic_string_view<char, std::char_traits<char> >, google::protobuf::MessageLite&) (descriptor.cc:9520)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1097)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1102)
==68934==    by 0x497E584: google::protobuf::DescriptorBuilder::BuildFileImpl(google::protobuf::FileDescriptorProto const&, google::protobuf::internal::FlatAllocator&) (descriptor.cc:5672)
==68934==    by 0x497F978: google::protobuf::DescriptorBuilder::BuildFile(google::protobuf::FileDescriptorProto const&) (descriptor.cc:5632)
==68934== 
==68934== 120 bytes in 3 blocks are possibly lost in loss record 5 of 6
==68934==    at 0x4841FC3: operator new(unsigned long) (vg_replace_malloc.c:472)
==68934==    by 0x4962B2A: UnknownInlinedFun (arena.h:454)
==68934==    by 0x4962B2A: UnknownInlinedFun (arena.h:535)
==68934==    by 0x4962B2A: UnknownInlinedFun (arena.h:562)
==68934==    by 0x4962B2A: UnknownInlinedFun (arena.h:575)
==68934==    by 0x4962B2A: UnknownInlinedFun (message_lite.h:505)
==68934==    by 0x4962B2A: google::protobuf::FeatureSetDefaults_FeatureSetEditionDefault::New(google::protobuf::Arena*) const (descriptor.pb.h:3542)
==68934==    by 0x4A0BD56: UnknownInlinedFun (repeated_ptr_field.h:918)
==68934==    by 0x4A0BD56: UnknownInlinedFun (repeated_ptr_field.h:235)
==68934==    by 0x4A0BD56: UnknownInlinedFun (repeated_ptr_field.h:230)
==68934==    by 0x4A0BD56: UnknownInlinedFun (generated_message_tctable_lite.cc:474)
==68934==    by 0x4A0BD56: google::protobuf::internal::TcParser::FastMtR1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:521)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x498DA26: google::protobuf::internal::ParseNoReflection(std::basic_string_view<char, std::char_traits<char> >, google::protobuf::MessageLite&) (descriptor.cc:9520)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1097)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1102)
==68934==    by 0x497E584: google::protobuf::DescriptorBuilder::BuildFileImpl(google::protobuf::FileDescriptorProto const&, google::protobuf::internal::FlatAllocator&) (descriptor.cc:5672)
==68934==    by 0x497F978: google::protobuf::DescriptorBuilder::BuildFile(google::protobuf::FileDescriptorProto const&) (descriptor.cc:5632)
==68934==    by 0x498033E: google::protobuf::DescriptorPool::BuildFileFromDatabase(google::protobuf::FileDescriptorProto const&) const (descriptor.cc:4551)
==68934==    by 0x496D405: google::protobuf::DescriptorPool::TryFindFileInFallbackDatabase(std::basic_string_view<char, std::char_traits<char> >) const (descriptor.cc:2563)
==68934==    by 0x496D956: google::protobuf::DescriptorPool::FindFileByName(std::basic_string_view<char, std::char_traits<char> >) const (descriptor.cc:2143)
==68934==    by 0x4A02C1C: google::protobuf::(anonymous namespace)::AssignDescriptorsImpl(google::protobuf::internal::DescriptorTable const*, bool) [clone .lto_priv.0] (generated_message_reflection.cc:3626)
==68934==    by 0x4AB9950: UnknownInlinedFun (generated_message_reflection.cc:3707)
==68934==    by 0x4AB9950: UnknownInlinedFun (invoke.h:61)
==68934==    by 0x4AB9950: UnknownInlinedFun (invoke.h:96)
==68934==    by 0x4AB9950: UnknownInlinedFun (functional:113)
==68934==    by 0x4AB9950: void absl::lts_20230802::base_internal::CallOnceImpl<google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20230802::once_flag*, google::protobuf::Metadata const&)::{lambda()#1}>(std::atomic<unsigned int>*, absl::lts_20230802::base_internal::SchedulingMode, google::protobuf::internal::AssignDescriptors(google::protobuf::internal::DescriptorTable const* (*)(), absl::lts_20230802::once_flag*, google::protobuf::Metadata const&)::{lambda()#1}&&) [clone .constprop.0] (call_once.h:178)
==68934== 
==68934== 216 bytes in 3 blocks are possibly lost in loss record 6 of 6
==68934==    at 0x4841FC3: operator new(unsigned long) (vg_replace_malloc.c:472)
==68934==    by 0x496281A: UnknownInlinedFun (arena.h:454)
==68934==    by 0x496281A: UnknownInlinedFun (arena.h:535)
==68934==    by 0x496281A: UnknownInlinedFun (arena.h:562)
==68934==    by 0x496281A: UnknownInlinedFun (arena.h:575)
==68934==    by 0x496281A: UnknownInlinedFun (message_lite.h:505)
==68934==    by 0x496281A: google::protobuf::FeatureSet::New(google::protobuf::Arena*) const (descriptor.pb.h:1721)
==68934==    by 0x4A0AAA4: UnknownInlinedFun (generated_message_tctable_lite.cc:386)
==68934==    by 0x4A0AAA4: google::protobuf::internal::TcParser::FastMtS1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:427)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x4A0BCAA: UnknownInlinedFun (parse_context.h:519)
==68934==    by 0x4A0BCAA: UnknownInlinedFun (generated_message_tctable_lite.cc:480)
==68934==    by 0x4A0BCAA: google::protobuf::internal::TcParser::FastMtR1(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long) (generated_message_tctable_lite.cc:521)
==68934==    by 0x4A0A19D: UnknownInlinedFun (generated_message_tctable_impl.h:922)
==68934==    by 0x4A0A19D: google::protobuf::internal::TcParser::ParseLoop(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcParseTableBase const*) (generated_message_tctable_lite.cc:92)
==68934==    by 0x498DA26: google::protobuf::internal::ParseNoReflection(std::basic_string_view<char, std::char_traits<char> >, google::protobuf::MessageLite&) (descriptor.cc:9520)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1097)
==68934==    by 0x497E584: UnknownInlinedFun (descriptor.cc:1102)
==68934==    by 0x497E584: google::protobuf::DescriptorBuilder::BuildFileImpl(google::protobuf::FileDescriptorProto const&, google::protobuf::internal::FlatAllocator&) (descriptor.cc:5672)
==68934==    by 0x497F978: google::protobuf::DescriptorBuilder::BuildFile(google::protobuf::FileDescriptorProto const&) (descriptor.cc:5632)
==68934==    by 0x498033E: google::protobuf::DescriptorPool::BuildFileFromDatabase(google::protobuf::FileDescriptorProto const&) const (descriptor.cc:4551)
==68934==    by 0x496D405: google::protobuf::DescriptorPool::TryFindFileInFallbackDatabase(std::basic_string_view<char, std::char_traits<char> >) const (descriptor.cc:2563)
==68934==    by 0x496D956: google::protobuf::DescriptorPool::FindFileByName(std::basic_string_view<char, std::char_traits<char> >) const (descriptor.cc:2143)
==68934== 
==68934== LEAK SUMMARY:
==68934==    definitely lost: 0 bytes in 0 blocks
==68934==    indirectly lost: 0 bytes in 0 blocks
==68934==      possibly lost: 560 bytes in 13 blocks
==68934==    still reachable: 56 bytes in 1 blocks
==68934==         suppressed: 0 bytes in 0 blocks
==68934== Reachable blocks (those to which a pointer was found) are not shown.
==68934== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==68934== 
==68934== For lists of detected and suppressed errors, rerun with: -s
==68934== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 0 from 0)

Anything else we should know about your project / environment

ASAN does not indicate anything, so this might be an valgrind thing. Also happens if google::protobuf::util::MessageToJsonString is called.

@sgaisser sgaisser added the untriaged auto added to all issues by default when created. label Nov 17, 2023
@sgaisser sgaisser changed the title Valgrind Memory leak C++: Valgrind Memory leak Nov 17, 2023
@zhangskz zhangskz added 25.x c++ and removed untriaged auto added to all issues by default when created. labels Nov 17, 2023
copybara-service bot pushed a commit that referenced this issue Nov 17, 2023
copybara-service bot pushed a commit that referenced this issue Nov 17, 2023
copybara-service bot pushed a commit that referenced this issue Nov 17, 2023
mkruskal-google added a commit to mkruskal-google/protobuf that referenced this issue Nov 17, 2023
@mkruskal-google
Copy link
Member

mkruskal-google commented Nov 17, 2023

FWIW this is a fixed-size global that doesn't represent any kind of dangerous leak, but I'll added a deleter to clean it up

@versat
Copy link

versat commented Jan 11, 2024

@mkruskal-google
I have just updated protobuf to 4.24.4 (C++) (and abseil to 20230802.1) and I now see several Valgrind issues that I have not seen with the version we used before (protobuf 3.19.2 without abseil).
I have also tried protobuf 4.25.2 where the shutdown deleter is added, but I still get the same Valgrind issues reported:

==135692== 414 bytes in 16 blocks are possibly lost in loss record 32 of 34
==135692==    at 0x483BED1: operator new(unsigned long) (vg_replace_malloc.c:483)
==135692==    by 0x201709: __gnu_cxx::new_allocator<char>::allocate(unsigned long, void const*) (new_allocator.h:115)
==135692==    by 0x1FA308: allocate (allocator.h:173)
==135692==    by 0x1FA308: std::allocator_traits<std::allocator<char> >::allocate(std::allocator<char>&, unsigned long) (alloc_traits.h:460)
==135692==    by 0x1FF62A: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long) (basic_string.tcc:153)
==135692==    by 0x200FB6: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) (basic_string.tcc:219)
==135692==    by 0x1FF840: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char*>(char*, char*, std::__false_type) (basic_string.h:247)
==135692==    by 0x1F9E88: void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*) (basic_string.h:266)
==135692==    by 0x1F7F0C: std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (basic_string.h:451)
==135692==    by 0x4AF7F5: std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, 0ul, google::protobuf::Descriptor::WellKnownType const&, 0ul>(std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&, std::_Index_tuple<0ul>, std::_Index_tuple<0ul>) (tuple:1689)
==135692==    by 0x4AF312: std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, google::protobuf::Descriptor::WellKnownType const&>(std::piecewise_construct_t, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&>) (tuple:1678)
==135692==    by 0x4AEEE0: void __gnu_cxx::new_allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) (new_allocator.h:150)
==135692==    by 0x4AE7A4: void std::allocator_traits<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) (alloc_traits.h:512)
==135692==    by 0x4AD82E: void absl::lts_20230802::container_internal::map_slot_policy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>::construct<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >*, absl::lts_20230802::container_internal::map_slot_type<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) (container_memory.h:386)
==135692==    by 0x4ABFC4: void absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>::construct<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >*, absl::lts_20230802::container_internal::map_slot_type<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) (flat_hash_map.h:573)
==135692==    by 0x4AA0DE: void absl::lts_20230802::container_internal::common_policy_traits<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, void>::construct<std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> >*, absl::lts_20230802::container_internal::map_slot_type<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) (common_policy_traits.h:43)
==135692==    by 0x4A6842: void absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::emplace_at<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(unsigned long, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) (raw_hash_set.h:2699)
==135692==    by 0x4A2C7F: std::pair<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::iterator, bool> absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable::operator()<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<google::protobuf::Descriptor::WellKnownType const&>&&) const (raw_hash_set.h:2461)
==135692==    by 0x49DFD1: decltype (((declval<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable>)())((declval<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const& const&>)(), std::piecewise_construct, (declval<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> >)(), (declval<std::tuple<google::protobuf::Descriptor::WellKnownType const&> >)())) absl::lts_20230802::container_internal::memory_internal::DecomposePairImpl<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >(absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable&&, std::pair<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<google::protobuf::Descriptor::WellKnownType const&> >) (container_memory.h:140)
==135692==    by 0x49757F: decltype (DecomposePairImpl((forward<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable>)({parm#1}), PairArgs((forward<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&>)({parm#2})))) absl::lts_20230802::container_internal::DecomposePair<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&>(absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable&&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&) (container_memory.h:207)
==135692==    by 0x48F402: decltype (DecomposePair((declval<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable>)(), (declval<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&>)())) absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>::apply<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&>(absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable&&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&) (flat_hash_map.h:591)
==135692==    by 0x48669E: decltype (absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>::apply((forward<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable>)({parm#1}), (forward<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&>)({parm#2}))) absl::lts_20230802::container_internal::hash_policy_traits<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, void>::apply<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&, absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> >(absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::EmplaceDecomposable&&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&) (hash_policy_traits.h:134)
==135692==    by 0x47C77B: std::pair<absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::iterator, bool> absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::emplace<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&, 0>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const&) (raw_hash_set.h:2064)
==135692==    by 0x46F41C: void absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::insert<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const*>(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const*, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> const*) (raw_hash_set.h:2018)
==135692==    by 0x463CD0: absl::lts_20230802::container_internal::raw_hash_set<absl::lts_20230802::container_internal::FlatHashMapPolicy<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType>, absl::lts_20230802::container_internal::StringHash, absl::lts_20230802::container_internal::StringEq, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, google::protobuf::Descriptor::WellKnownType> > >::insert(std::initializer_list<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, google::protobuf::Descriptor::WellKnownType> >) (raw_hash_set.h:2027)
==135692==    by 0x40D1FC: google::protobuf::DescriptorPool::Tables::Tables() (descriptor.cc:1552)
==135692==    by 0x40ECF3: google::protobuf::DescriptorPool::DescriptorPool(google::protobuf::DescriptorDatabase*, google::protobuf::DescriptorPool::ErrorCollector*) (descriptor.cc:2042)
==135692==    by 0x40F0CF: google::protobuf::(anonymous namespace)::NewGeneratedPool() (descriptor.cc:2103)
==135692==    by 0x40F14C: google::protobuf::DescriptorPool::internal_generated_pool() (descriptor.cc:2116)
==135692==    by 0x40F1CC: google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, int) (descriptor.cc:2159)
==135692==    by 0x33A454: google::protobuf::(anonymous namespace)::AddDescriptorsImpl(google::protobuf::internal::DescriptorTable const*) (generated_message_reflection.cc:3673)
==135692==    by 0x33A48D: google::protobuf::(anonymous namespace)::AddDescriptors(google::protobuf::internal::DescriptorTable const*) (generated_message_reflection.cc:3684)
==135692==    by 0x33A56B: google::protobuf::internal::AddDescriptorsRunner::AddDescriptorsRunner(google::protobuf::internal::DescriptorTable const*) (generated_message_reflection.cc:3719)
==135692==    by 0x298FDC: __static_initialization_and_destruction_0(int, int) (dm_errorcode.pb.cc:108)
==135692==    by 0x299007: _GLOBAL__sub_I.00102_dm_errorcode.pb.cc (port_undef.inc:192)
==135692==    by 0xD385B4: __libc_csu_init (in /home/user/git/dm/Build/Debian11_x86_64/Debug/bin/DMUnitTest-0.10.0-local-build)
==135692==    by 0x58A7C99: (below main) (libc-start.c:264)

Is this related in any way? Do I have to do some clean up? google::protobuf::ShutdownProtobufLibrary(); seems to not help.

Context:
We are using protobuf with grpc. There were no leaks reported with grpc 1.39.1, protobuf 3.19.2.
Now with grpc 1.59.3 and protobuf 24.4 / 25.2 these leaks are reported.

Since this is some static initialization/allocation done before the program really starts I guess it is save to suppress it, right? But I would be more relaxed if I could get rid of these Valgrind issues :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants