[
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.
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
> 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
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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)