Do we need to explicitly destroy them? I am calling  
google::protobuf::ShutdownProtobufLibrary() 
at then end but this error pops up before this. Should I try to get rid of 
pointers and work with copy?

On Wednesday, May 17, 2023 at 2:48:42 PM UTC-7 Adam Cozzette wrote:

> The code you have posted looks fine as far as I can tell, so if there is a 
> memory leak then I think the problem is elsewhere. I suspect that the 
> TelemetryProtobuf::EventName proto passed to PopulateEventName() is not 
> getting destroyed. Or if you're using an arena, then the arena that proto 
> was allocated on is not getting destroyed.
>
> On Wed, May 17, 2023 at 1:18 PM Harsh Ranjan <[email protected]> wrote:
>
>> It is cpp code. I initially thought the issue is NULL pointers but then I 
>> replaced all the fields with hardcoded constant values and I still got the 
>> same issue. 
>>
>> On Wednesday, May 17, 2023 at 12:41:37 PM UTC-7 Harsh Ranjan wrote:
>>
>>> Hey Team,
>>>
>>> I have been trying to add unit-test for my protobuf class. Attaching the 
>>> full error as pdf.
>>>
>>> [3 / 3] Leaked 72 bytes allocated at 000002E2A001AAC0
>>>      at Mso::Memory::AllocateEx 
>>> [liblet\debugheap\memoryapiimpl\memoryapi.cpp(19)]
>>>      at Mso::Memory::Throw::AllocateEx 
>>> [x64\debug\liblet_operatornew\x-none\x64\inc\core\memoryApi_throw.h(29)]
>>>      at operator new 
>>> [x64\debug\liblet_precomp\x-none\x64\inc\core\memoryNew_Throw.h(61)]
>>>      at 
>>> google::protobuf::Arena::CreateInternal<TelemetryProtobuf::EventNamespace> 
>>> [x64\debug\telemetry_serializersink\x-none\x64\inc\google\protobuf\arena.h(527)]
>>>      at 
>>> google::protobuf::Arena::CreateMaybeMessage<TelemetryProtobuf::EventNamespace>
>>>  
>>> [telemetry\serializersink\telemetryevent_v310.pb.cc(12052)]
>>>      at 
>>> google::protobuf::MessageLite::CreateMaybeMessage<TelemetryProtobuf::EventNamespace>
>>>  
>>> [x64\debug\telemetry_serializersink\x-none\x64\inc\google\protobuf\message_lite.h(449)]
>>>
>>> I am just populating the protobuf event.
>>> void PopulateEventNameSpace(TelemetryProtobuf::EventNamespace& 
>>> protobufEventNamespace, const Telemetry::TelemetryNamespace& 
>>> telemetryNamespace) noexcept
>>> {
>>> protobufEventNamespace.set_fullnamelength(8);
>>> protobufEventNamespace.set_nodenamecount(1010);
>>> }
>>>
>>> void PopulateEventName(TelemetryProtobuf::EventName& protobufEventName, 
>>> const Telemetry::EventName& telemetryEventName) noexcept
>>> {
>>> protobufEventName.set_eventnodename("baz");
>>> PopulateEventNameSpace(*protobufEventName.mutable_eventnamespace(), 
>>> telemetryEventName.GetNamespace());
>>> }
>>>
>>> Anything I am missing here? I am using the protobuf version 3.10
>>>
>>> Thanks,
>>> Harsh
>>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" 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/protobuf/45432e0a-50e0-48de-8811-50024981d805n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/protobuf/45432e0a-50e0-48de-8811-50024981d805n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" 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/protobuf/521a5ca8-66ac-42a2-a414-62159f16f306n%40googlegroups.com.

Reply via email to