You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2015/04/09 02:52:12 UTC
[jira] [Commented] (THRIFT-2682) TThreadedServer leaks per-thread
memory
[ https://issues.apache.org/jira/browse/THRIFT-2682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14486441#comment-14486441 ]
James E. King, III commented on THRIFT-2682:
--------------------------------------------
I recently ran valgrind on the C++ unit test suite and found no leaks in this area. Is this still an issue? If so, adding a unit test that exposes it would be a great way to get started on the road to a fix.
> TThreadedServer leaks per-thread memory
> ---------------------------------------
>
> Key: THRIFT-2682
> URL: https://issues.apache.org/jira/browse/THRIFT-2682
> Project: Thrift
> Issue Type: Bug
> Components: C++ - Library
> Affects Versions: 0.9.1
> Environment: RHEL 6.5
> Reporter: Artem Koval
> Priority: Critical
> Attachments: thrift_vg.txt
>
>
> We are using Thrift 0.9.1 in Linux, both client and server are written in C++. TThreadedServer is used to process requests involving large (up to 1MB) binary parameters.
> Usage pattern is like this: the client establishes a UNIX socket connection, makes some interface calls and then disconnects.
> We noticed that the memory footprint of the server process increases over time. Valgrind inspection showed that despite the server threads have long been shutdown, their data allocated in TThreadedServer::serve() hasn't been freed and shows up as "definitely lost".
> This leak, although significant, is not critical by itself. But per-thread data includes a TBinaryProtocol object, which in turn holds a "string buffer" used to serialize binary parameters. These string buffers are quite large in our case, leading to overall memory leakage being unacceptably high.
> As a workaround, we will for now turn to TNonblockingServer, which uses persistent threads. However, a memory leak is still a very serious problem, and it should be fixed.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)