[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