[ 
https://issues.apache.org/jira/browse/MINIFICPP-839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Bakai updated MINIFICPP-839:
-----------------------------------
    Description: 
There seems to be a Connection<->Processor shared_ptr cycle which means that 
the Processors never get destructed.

This causes leaks in reloads and in tests.

There are also other cycles causing leaks:
 * Connection <-> FlowFile (this seems to be partially mitigated by 
Connection::drain(), but not entirely)
 * ResourceClaim <-> VolatileContentRepository
 * VolatileContentRepository <-> VolatileContentRepository (capturing a 
shared_ptr into a thread func and detaching the thread)
 * FlowController <-> SchedulingAgent (TimerDrivenSchedulingAgent, 
EventDrivenSchedulingAgent, CronDrivenSchedulingAgent) and even FlowController 
<-> util::ThreadPool because of this

  was:
There seems to be a Connection<->Processor shared_ptr cycle which means that 
the Processors never get destructed.

This causes leaks in reloads and in tests.


> Multiple memory leaks because of shared_ptr cycles
> --------------------------------------------------
>
>                 Key: MINIFICPP-839
>                 URL: https://issues.apache.org/jira/browse/MINIFICPP-839
>             Project: Apache NiFi MiNiFi C++
>          Issue Type: Bug
>            Reporter: Daniel Bakai
>            Assignee: Daniel Bakai
>            Priority: Blocker
>              Labels: ReloadValidation
>             Fix For: 0.7.0
>
>
> There seems to be a Connection<->Processor shared_ptr cycle which means that 
> the Processors never get destructed.
> This causes leaks in reloads and in tests.
> There are also other cycles causing leaks:
>  * Connection <-> FlowFile (this seems to be partially mitigated by 
> Connection::drain(), but not entirely)
>  * ResourceClaim <-> VolatileContentRepository
>  * VolatileContentRepository <-> VolatileContentRepository (capturing a 
> shared_ptr into a thread func and detaching the thread)
>  * FlowController <-> SchedulingAgent (TimerDrivenSchedulingAgent, 
> EventDrivenSchedulingAgent, CronDrivenSchedulingAgent) and even 
> FlowController <-> util::ThreadPool because of this



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to