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

Nikita Vdovushkin commented on THRIFT-2379:
-------------------------------------------

I rewrited everything on shared ptr, but that didn't help. Object still 
deleting in TsimpleServer mode but not in NonBlocking. For me it's seems the 
matter is in multithreading mode, remote methods starts in the child thread, so 
they can't release resources that were allocated in the main thread. I believe 
that this is not bug, but feature, but I can't understand how to resolve it. I 
would be very pleased if you can give me maybe some advices or examples, to 
understant the right reload method implementation. In perfect way I just wanted 
to ask server recreate processor object, but I don't know how to do this.

> 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