You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (Jira)" <ji...@apache.org> on 2020/07/01 21:20:00 UTC
[jira] [Resolved] (THRIFT-5118) Fix memory leak when the handler
method return a exception
[ https://issues.apache.org/jira/browse/THRIFT-5118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jens Geyer resolved THRIFT-5118.
--------------------------------
Fix Version/s: 0.14.0
Resolution: Fixed
> 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
> Priority: Critical
> Fix For: 0.14.0
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> 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)