wangyunjian created THRIFT-5118: ----------------------------------- Summary: Fix memory leak when the handler method return a exception Key: THRIFT-5118 URL: https://issues.apache.org/jira/browse/THRIFT-5118 Project: Thrift Issue Type: Bug Components: C glib - Compiler Affects Versions: 0.13.0 Reporter: wangyunjian Assignee: wangyunjian
When a service method throws a custom exception, the exception hasn't been freed. The exception object need to be freed after it is setted to the result_struct's property. Leak: Indirect leak of 19 byte(s) in 1 object(s) allocated from: #0 0x7f83ef066ae8 in __interceptor_malloc (/usr/lib64/libasan.so.5+0xefae8) #1 0x7f83ee0bb1d5 in g_malloc (/usr/lib64/libglib-2.0.so.0+0x531d5) #2 0x7f83ee0d4b32 in g_strdup (/usr/lib64/libglib-2.0.so.0+0x6cb32) #3 0x40a476 in invalid_operation_set_property gen-c_glib/tutorial_types.c:574 #4 0x7f83eeb093e4 (/usr/lib64/libgobject-2.0.so.0+0x163e4) #5 0x7f83eeb0af4d in g_object_new_valist (/usr/lib64/libgobject-2.0.so.0+0x17f4d) #6 0x7f83eeb0b2ac in g_object_new (/usr/lib64/libgobject-2.0.so.0+0x182ac) #7 0x402935 in tutorial_calculator_handler_calculate /mnt/hgfs/share/thrift-0.13.0/tutorial/c_glib/c_glib_server.c:233 #8 0x404e8a in calculator_handler_calculate gen-c_glib/calculator.c:713 #9 0x4059c8 in calculator_processor_process_calculate gen-c_glib/calculator.c:1030 #10 0x405fcf in calculator_processor_dispatch_call gen-c_glib/calculator.c:1197 #11 0x7f83eed54e53 in thrift_dispatch_processor_process (/usr/lib64/libthrift_c_glib.so.0+0xee53) #12 0x7f83eed68d11 in thrift_simple_server_serve src/thrift/c_glib/server/thrift_simple_server.c:58 #13 0x7f83eed67b9a in thrift_server_serve src/thrift/c_glib/server/thrift_server.c:108 #14 0x402ef2 in main /mnt/hgfs/share/thrift-0.13.0/tutorial/c_glib/c_glib_server.c:506 #15 0x7f83ed89f872 in __libc_start_main (/usr/lib64/libc.so.6+0x23872) #16 0x40254d in _start (/mnt/hgfs/share/thrift-0.13.0/tutorial/c_glib/.libs/tutorial_server+0x40254d) -- This message was sent by Atlassian Jira (v8.3.4#803005)