[ 
https://issues.apache.org/jira/browse/THRIFT-3552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon South updated THRIFT-3552:
--------------------------------
    Attachment: 0001-c_glib-Fix-memory-leak-in-processor.patch

I wrote the code in question and yes, it appears Anish has found a real memory 
leak.

It seems to me the method-name string should be free'd by the first 
{{dispatch_call}} implementation that recognizes it, or by the default 
implementation if the method name is unrecognized.

I've attached a patch that implements this change. Anish, can you please test 
again with this patch applied? Note you will need to rebuild the compiler and 
library and regenerate the Thrift classes for your project.

> glib_c Memory Leak
> ------------------
>
>                 Key: THRIFT-3552
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3552
>             Project: Thrift
>          Issue Type: Bug
>          Components: C glib - Library
>    Affects Versions: 0.9.3
>            Reporter: Anish Shah
>            Assignee: Simon South
>         Attachments: 0001-c_glib-Fix-memory-leak-in-processor.patch
>
>
> I have been seeing some memory leaks using valgring in my testprogram.
> Leak:
> ==94320== 17,878 bytes in 2,712 blocks are definitely lost in loss record 987 
> of 1,018
> ==94320==    at 0x4A057BB: calloc (vg_replace_malloc.c:593)
> ==94320==    by 0x3D7DA49BF7: g_malloc0 (gmem.c:196)
> ==94320==    by 0x5768002: thrift_binary_protocol_read_string 
> (thrift_binary_protocol.c:791)
> ==94320==    by 0x5768987: thrift_binary_protocol_read_message_begin 
> (thrift_binary_protocol.c:431)
> ==94320==    by 0x576702E: thrift_dispatch_processor_process 
> (thrift_dispatch_processor.c:41)
> ==94320==    by 0x576CC06: thrift_simple_server_serve 
> (thrift_simple_server.c:62)
> ==94320==    by 0x45A548: server_start (server.c:135)
> ==94320==    by 0x3D7C607A50: start_thread (pthread_create.c:301)
> ==94320==    by 0x3D7C2E893C: clone (clone.S:115)
> My question is where is the *str memory allocated by function 
> thrift_binary_protocol_read_string() freed? Am I doing something wrong or is 
> there an actual memory leak? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to