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

Timothy Chen edited comment on MESOS-1652 at 8/3/14 7:20 AM:
-------------------------------------------------------------

[~jieyu] we talked about removing the detach and just attach stdout and stderr 
as part of docker run to collect its stdout and stderr logs into the sandbox. I 
just tried doing so and found out the problem arises is that I don't know if my 
docker container succeeded to launch or not since I can't wait on the status 
future of the subprocess anymore. As our current approach launches the docker 
run, then launches a command executor with a docker wait that waits on the 
container, without detach we can run into a race when the docker run hasn't yet 
launched the container but we already attempt to run docker wait and failed to 
find it. There need to be a way to distinguish between docker failed to launch 
the container or the docker run command itself failed, also the solve the 
docker wait.
I was thinking one way is to put this into a specific executor (docker 
executor) that just runs docker run synchronously, and when the status returns 
check to see if docker ps has that container to see if it was a failed launch 
or a failed container, so to move away from docker wait completely. 
I'm not sure if this is all worth just for attaching stdout and stderr though.

Not sure if you or [~benjaminhindman] has any thoughts or better approaches 
here? 


was (Author: tnachen):
[~jieyu] we talked about removing the detach and just attach stdout and stderr 
as part of docker run to collect its stdout and stderr logs into the sandbox. I 
just tried doing so and found out the problem arises is that I don't know if my 
docker container succeeded to launch or not since I can't wait on the status 
future of the subprocess anymore. As our current approach launches the docker 
run, then launches a command executor with a docker wait that waits on the 
container, without detach we can run into a race when the docker run hasn't yet 
launched the container but we already attempt to run docker wait and failed to 
find it. I don't know is there any good way to know if we distinguish between 
docker failed to launch the container or the docker run command itself failed.

Not sure if you or [~benjaminhindman] has any good approaches here? If we don't 
have a good answer we might need to failback to the original -d and stream both 
stderr and stdout into a log file.

> Stream Docker logs into sandbox logs
> ------------------------------------
>
>                 Key: MESOS-1652
>                 URL: https://issues.apache.org/jira/browse/MESOS-1652
>             Project: Mesos
>          Issue Type: Improvement
>            Reporter: Timothy Chen
>            Assignee: Timothy Chen
>
> We should write logs either during or after the task launched the logs from 
> the docker container into the sandbox so it can be viewed without actually 
> going to the host and calling "docker logs".



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to