[
https://issues.apache.org/jira/browse/MESOS-6484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joris Van Remoortere updated MESOS-6484:
----------------------------------------
Shepherd: Joris Van Remoortere
Sprint: Mesosphere Sprint 48
> Memory leak in `Future<T>::after()`
> -----------------------------------
>
> Key: MESOS-6484
> URL: https://issues.apache.org/jira/browse/MESOS-6484
> Project: Mesos
> Issue Type: Bug
> Components: libprocess
> Affects Versions: 1.1.0
> Reporter: Alexander Rojas
> Assignee: Alexander Rojas
> Labels: libprocess, mesosphere
> Fix For: 1.2.0
>
>
> The problem arises when one tries to associate an {{after()}} call to copied
> futures. The following test case is enough to reproduce the issue:
> {code}
> TEST(FutureTest, After3)
> {
> auto policy = std::make_shared<int>(0);
> {
> auto generator = []() {
> return Future<Nothing>();
> };
> Future<Nothing> future = generator()
> .after(Milliseconds(1),
> [policy](const Future<Nothing>&) {
> return Nothing();
> });
> AWAIT_READY(future);
> }
> EXPECT_EQ(1, policy.use_count());
> }
> {code}
> In the test, one would expect that there is only one active reference to
> {{policy}}, therefore the expectation {{EXPECT_EQ(1, policy.use_count())}}.
> However, if after is triggered more than once, each extra call adds one
> undeleted reference to {{policy}}.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)