[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mesos-issues
Subject:    [jira] [Comment Edited] (MESOS-8576) Improve discard handling of 'Docker::inspect()'
From:       "Greg Mann (JIRA)" <jira () apache ! org>
Date:       2018-02-28 1:06:00
Message-ID: JIRA.13138103.1518509736000.291934.1519779960262 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/MESOS-8576?page=com.atlassian.jira.plugin. \
system.issuetabpanels:comment-tabpanel&focusedCommentId=16375252#comment-16375252 ] 

Greg Mann edited comment on MESOS-8576 at 2/28/18 1:05 AM:
-----------------------------------------------------------

Still working on this one. The problem is that {{Docker::inspect()}} has retry logic \
embedded within the library function, since we often call it before a container has \
started running in order to detect that the container is up. So, to avoid repeatedly \
registering {{onDiscard}} callbacks with every retry (which would constitute a memory \
leak), we need to pass the "context" of the current {{docker inspect}} call through \
the async call chain, and also make it accessible to the {{onDiscard}} callback which \
we install onto the returned future. Since the Docker library is not currently a \
libprocess actor, this is a bit difficult.


was (Author: greggomann):
Still working on this one. The problem is that {{Docker::inspect()}} has retry logic \
embedded within the library function, since we often call it before a container has \
started running in order to detect that the container is up. So, to avoid repeatedly \
registering {{onDiscard}} callbacks with every retry (which would constitute a memory \
leak), we need to pass the "context" of the current {{docker inspect}} call through \
the async call chain, and also make it accessible to the {{onDiscard}} callback which \
we install onto the returned future. Since the Docker library is not currently a \
libprocess actor, this is a bit difficult.

WIP patch here: https://reviews.apache.org/r/65683/

> Improve discard handling of 'Docker::inspect()'
> -----------------------------------------------
> 
> Key: MESOS-8576
> URL: https://issues.apache.org/jira/browse/MESOS-8576
> Project: Mesos
> Issue Type: Improvement
> Components: containerization, docker
> Affects Versions: 1.5.0
> Reporter: Greg Mann
> Assignee: Greg Mann
> Priority: Major
> Labels: mesosphere
> 
> In the call path of {{Docker::inspect()}}, each continuation currently checks if \
> {{promise->future().hasDiscard()}}, where the {{promise}} is associated with the \
> output of the {{docker inspect}} call. However, if the call to {{docker inspect}} \
> becomes hung indefinitely, then continuations are never invoked, and a subsequent \
> discard of the returned {{Future}} will have no effect. We should add proper \
> {{onDiscard}} handling to that {{Future}} so that appropriate cleanup is performed \
> in such cases.



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic