[
https://issues.apache.org/jira/browse/MESOS-6469?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15634825#comment-15634825
]
Kevin Klues commented on MESOS-6469:
------------------------------------
We talked through exactly what needs to happen between the HTTP handlers and
the I/O switchboard and figured out we can split all of the logic that would
have been in the {{AttachContainerActor}} between the containerizer and the
HTTP handlers themselves. As designed previously, the HTTP handlers would have
been extremely trivial and definitely not taken 5 days to do. Now they will be
a bit beefier (implementing the logic we thought would go in the
{{AttachContainerActor}}), but we had already allocated ample time for them.
> Build an Attach Container Actor
> -------------------------------
>
> Key: MESOS-6469
> URL: https://issues.apache.org/jira/browse/MESOS-6469
> Project: Mesos
> Issue Type: Task
> Reporter: Kevin Klues
> Assignee: Kevin Klues
> Labels: debugging, mesosphere
>
> The new agent API calls for ATTACH_CONTAINER_INPUT and
> ATTACH_CONTAINER_OUTPUT are intimately intertwined. That is, most attach
> operations will likely want to call both ATTACH_CONTAINER_INPUT and
> ATTACH_CONTAINER_OUTPUT in order to attach all three of stdin, stdout and
> stderr to a local terminal.
> Moreover, we plan to allow multiple ATTACH_CONTAINER_OUTPUT calls can be made
> for the same container (i.e. from multiple clients), while only one
> ATTACH_CONTAINER_INPUT call will be allowed to connect at a time.
> In order to ensure that these calls are properly grouped (as well as to
> ensure that any state they need to share is properly confined), we will
> lazily launch a “per-container” actor to manage all ATTACH_CONTAINER_OUTPUT
> and ATTACH_CONTAINER_INPUT calls on behalf of a container.
> It will be the responsibility of this actor to:
> * Manage the read end of the pipe set up by the HTTP handler for the
> ATTACH_CONTAINER_INPUT call for a given container.
> * Manage the write end of the pipes set up by the HTTP handler for all
> ATTACH_CONTAINER_OUTPUT calls for a given container.
> * Establish a connection to a per-container “I/O switchboard” (discussed
> below) in order to forward data coming from the ATTACH_CONTAINER_INPUT pipe
> to the switchboard.
> * Establish a second connection to the per-container “I/O switchboard” to
> stream all stdout data coming from the switchboard to all
> ATTACH_CONTAINER_OUTPUT pipes.
> * Establish a third connection to the per-container “I/O switchboard” to
> stream all stderr data coming from the switchboard to all
> ATTACH_CONTAINER_OUTPUT pipes.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)