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