Is this regression a blocker for 0.22.0?

On Tue, Feb 24, 2015 at 10:59 AM, Jie Yu (JIRA) <[email protected]> wrote:

> Jie Yu created MESOS-2398:
> -----------------------------
>
>              Summary: Destroying PREPARING container in Mesos
> containerizer is buggy
>                  Key: MESOS-2398
>                  URL: https://issues.apache.org/jira/browse/MESOS-2398
>              Project: Mesos
>           Issue Type: Bug
>     Affects Versions: 0.22.0
>             Reporter: Jie Yu
>
>
> This regression is introduced in
> https://reviews.apache.org/r/28141/
> {code}
> 923 void MesosContainerizerProcess::destroy(const ContainerID& containerId)
> ...
>  936
>  937   LOG(INFO) << "Destroying container '" << containerId << "'";
>  938
>  939   if (container->state == PREPARING) {
>  940     // We cannot simply terminate the container if it's preparing
>  941     // since isolator's prepare doesn't need any cleanup.
>  942     containerizer::Termination termination;
>  943     termination.set_killed(true);
>  944     termination.set_message("Container destroyed while preparing
> isolators");
>  945     container->promise.set(termination);
>  946
>  947     containers_.erase(containerId);
>  948
>  949     return;
>  950   }
> ...
> {code}
>
> In the PREPARING case, isolator->prepare() might be called already.
>
> Looking at our isolators, looks like we usually create an Info struct when
> prepare is called and delete the Info struct in cleanup. The shortcut here
> could cause a leak of this data structure. This is problematic because the
> port mapping isolator will run out of ephemeral ports because of this.
>
> Also, the comment is not accurate. I don't see any comments in the public
> header of isolator.hpp saying that prepare does not need any cleanup.
>
>
>
> --
> This message was sent by Atlassian JIRA
> (v6.3.4#6332)
>

Reply via email to