[ 
https://issues.apache.org/jira/browse/THRIFT-2379?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13911521#comment-13911521
 ] 

Henrique Mendonça commented on THRIFT-2379:
-------------------------------------------

We've already run extensive tests on the ThreadedServer v0.9.0 in a large 
production project, also because of memory leaks. All was found were some small 
bugs like this, you can try to reduce your code to simple thread safe 
implementations and see if you can find the problem. Mutex deadlocks could also 
cause you to lose whole threads (1MB RAM)!

ps.: independent of this, the overhead of smart pointers is tiny compared with 
the benefits on code quality, I'd advice you to use it in all cases.

> Memmory leaking while using multithreading in C++ server.
> ---------------------------------------------------------
>
>                 Key: THRIFT-2379
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2379
>             Project: Thrift
>          Issue Type: Question
>          Components: C++ - Library
>    Affects Versions: 0.9.1
>         Environment: Linux Ubuntu 12.10 x64
>            Reporter: Nikita Vdovushkin
>              Labels: performance
>
> I have a problem, with memory leakin in apache thrift, I tried to ask at IRC 
> yesterday, but that didn't help.
> I'm using Apache Thrift framework, I'm writing a application, that has server 
> on C++ and python client. The application has big resources object, that are 
> using during the life. My application need to have a reload method, that 
> should delete all resources, and load new instances from the disk. I wrote 
> the cleannig method, and calling it before reload method. That's work, if I 
> use TSimpleServer. But when I'm starting to use ThreadedServer or 
> TNonBlocking server. Cleannig method doesn't work, as I can see, It's calling 
> but it doesn't cleans . Server just starting to use twice amount of memmory. 
> I tried to use a mutex during cleaning method, but that didn't help.
> I think th matter is multithreading, other method doesn't allow to release 
> old resources, but I'm not shure.
> I wrote example code that has the same issue, and it's quite clear for 
> understaing, I think.
> Code example:
> http://pastebin.com/qW8Ab1xQ
> Full code availble in zip archive:
> https://docs.google.com/file/d/0B73BxCSXgnuzbXlncllSU0NDQkE/edit



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to