I am tracking down a memory leak, and it leads to the NewStub call (async 
in my case).  In our code, for every rpc request from the client, a NewStub 
is created to send the request. The stub object returned from NewStub is 
correctly deleted (as a unique_ptr), but something else during the call is 
not.

>From the code, Stub::Stub sets the RpcMethod object. RpcMethod's 
constructor calls channel->RegisterMethod(name), which then calls 
grpc_channel_register_call who does a gpr_malloc(sizeof(registered_call)). 
I am not sure when this memory should be freed, but jeprof also reports 
this gpr_malloc is leaking.

I also tried turning on GRPC_TRACE, and saw this 
grpc_channel_register_call, but never the one that frees the memory. Maybe 
I am not familiar with the grpc code, but can someone explain how this 
memory is freed?

Thanks for any pointer.

-- 
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 grpc-io+unsubscr...@googlegroups.com.
To post to this group, send email to grpc-io@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/4e9482c2-48f3-462e-bce0-8d61e4152b88%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to