You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Marc Villacorta (JIRA)" <ji...@apache.org> on 2016/11/11 14:55:00 UTC

[jira] [Updated] (MESOS-6577) Failed to run docker inspect

     [ https://issues.apache.org/jira/browse/MESOS-6577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Villacorta updated MESOS-6577:
-----------------------------------
    Description: 
I am running a _rocketized_ mesos agent.
I am using the docker containerizer.
My executors are _dockerized_.
The very first time I deploy a sample platform I get some errors like the one below:

{code:none}
Failed to launch container: Failed to run 'docker -H unix:///var/run/docker.sock inspect mesos-84a9df2b-be0e-459e-afc9-b95d4e8ced57-S0.0116a0a2-ccaf-4f1a-846c-361ec4e4a179': exited with status 1; stderr='Error: No such image, container or task: mesos-84a9df2b-be0e-459e-afc9-b95d4e8ced57-S0.0116a0a2-ccaf-4f1a-846c-361ec4e4a179 '
{code}

But when I check with {{docker ps}} I can see the supposedly missing container and I can even successfully run {{docker inspect}} on it. Then marathon reschedules and I get a duplicate. Nor mesos neither marathon list any duplicate (only docker does).

Restarting the mesos-agent wipes out the reported missing container leaving the other ones alive.

When all my nodes have the docker image layers cached I can deploy the sample platform smoothly and I don't get the previous errors.

If a container needs a remote volume attached (EBS via REX-Ray) the error happens all the time. No matter if cached or not.

Reading the code I suspect it is related to the _retryInterval_ of _Docker::inspect_ https://github.com/apache/mesos/blob/2e013890e47c30053b7b83cd205b432376589216/src/docker/docker.cpp#L950-L952 but there is no option to modify this setting.

  was:
I am running a _rocketized_ mesos agent.
I am using the docker containerizer.
My executors are _dockerized_.
The very first time I deploy a sample platform I get some errors like the one below:

{code:none}
Failed to launch container: Failed to run 'docker -H unix:///var/run/docker.sock inspect mesos-84a9df2b-be0e-459e-afc9-b95d4e8c    ed57-S0.0116a0a2-ccaf-4f1a-846c-361ec4e4a179': exited with status 1; stderr='Error: No such image, container or task: mesos-84a    9df2b-be0e-459e-afc9-b95d4e8ced57-S0.0116a0a2-ccaf-4f1a-846c-361ec4e4a179 '
{code}

But when I check with {{docker ps}} I can see the supposedly missing container and I can even successfully run {{docker inspect}} on it. Then marathon reschedules and I get a duplicate. Nor mesos neither marathon list any duplicate (only docker does).

Restarting the mesos-agent wipes out the reported missing container leaving the other ones alive.

When all my nodes have the docker image layers cached I can deploy the sample platform smoothly and I don't get the previous errors.

If a container needs a remote volume attached (EBS via REX-Ray) the error happens all the time. No matter if cached or not.

Reading the code I suspect it is related to the _retryInterval_ of _Docker::inspect_ https://github.com/apache/mesos/blob/2e013890e47c30053b7b83cd205b432376589216/src/docker/docker.cpp#L950-L952 but there is no option to modify this setting.


> Failed to run docker inspect
> ----------------------------
>
>                 Key: MESOS-6577
>                 URL: https://issues.apache.org/jira/browse/MESOS-6577
>             Project: Mesos
>          Issue Type: Bug
>          Components: containerization, docker
>    Affects Versions: 1.0.1
>         Environment: {code:none}
> core@kato-2 ~ $ cat /etc/systemd/system/mesos-agent.service
> [Unit]
> Description=Mesos agent
> After=go-dnsmasq.service
> [Service]
> Slice=machine.slice
> Restart=always
> RestartSec=10
> TimeoutStartSec=0
> KillMode=mixed
> EnvironmentFile=/etc/kato.env
> ExecStartPre=/usr/bin/sh -c "[ -d /var/lib/mesos/agent ] || mkdir -p /var/lib/mesos/agent"
> ExecStartPre=/usr/bin/sh -c "[ -d /etc/certs ] || mkdir -p /etc/certs"
> ExecStartPre=/usr/bin/sh -c "[ -d /etc/cni ] || mkdir -p /etc/cni"
> ExecStartPre=/opt/bin/zk-alive ${KATO_QUORUM_COUNT}
> ExecStartPre=/usr/bin/rkt fetch quay.io/kato/mesos:v1.0.1-${DOCKER_VERSION}-2
> ExecStartPre=/usr/bin/docker pull quay.io/kato/mesos:v1.0.1-${DOCKER_VERSION}-2
> ExecStart=/usr/bin/rkt run \
>  --net=host \
>  --dns=host \
>  --hosts-entry=host \
>  --volume cni,kind=host,source=/etc/cni \
>  --mount volume=cni,target=/etc/cni \
>  --volume certs,kind=host,source=/etc/certs \
>  --mount volume=certs,target=/etc/certs \
>  --volume docker,kind=host,source=/var/run/docker.sock \
>  --mount volume=docker,target=/var/run/docker.sock \
>  --volume data,kind=host,source=/var/lib/mesos \
>  --mount volume=data,target=/var/lib/mesos \
>  --stage1-name=coreos.com/rkt/stage1-fly \
>  quay.io/kato/mesos:v1.0.1-${DOCKER_VERSION}-2 --exec /usr/sbin/mesos-agent -- \
>  --no-systemd_enable_support \
>  --docker_mesos_image=quay.io/kato/mesos:v1.0.1-${DOCKER_VERSION}-2 \
>  --hostname=worker-${KATO_HOST_ID}.${KATO_DOMAIN} \
>  --ip=${KATO_HOST_IP} \
>  --containerizers=docker \
>  --executor_registration_timeout=2mins \
>  --master=zk://${KATO_ZK}/mesos \
>  --work_dir=/var/lib/mesos/agent \
>  --log_dir=/var/log/mesos/agent \
>  --network_cni_config_dir=/etc/cni \
>  --network_cni_plugins_dir=/var/lib/mesos/cni-plugins
> [Install]
> WantedBy=kato.target
> {code}
> {code:none}
> core@kato-2 ~ $ docker version
> Client:
>  Version:      1.12.3
>  API version:  1.24
>  Go version:   go1.6.3
>  Git commit:   34a2ead
>  Built:        
>  OS/Arch:      linux/amd64
> Server:
>  Version:      1.12.3
>  API version:  1.24
>  Go version:   go1.6.3
>  Git commit:   34a2ead
>  Built:        
>  OS/Arch:      linux/amd64
> {code}
>            Reporter: Marc Villacorta
>
> I am running a _rocketized_ mesos agent.
> I am using the docker containerizer.
> My executors are _dockerized_.
> The very first time I deploy a sample platform I get some errors like the one below:
> {code:none}
> Failed to launch container: Failed to run 'docker -H unix:///var/run/docker.sock inspect mesos-84a9df2b-be0e-459e-afc9-b95d4e8ced57-S0.0116a0a2-ccaf-4f1a-846c-361ec4e4a179': exited with status 1; stderr='Error: No such image, container or task: mesos-84a9df2b-be0e-459e-afc9-b95d4e8ced57-S0.0116a0a2-ccaf-4f1a-846c-361ec4e4a179 '
> {code}
> But when I check with {{docker ps}} I can see the supposedly missing container and I can even successfully run {{docker inspect}} on it. Then marathon reschedules and I get a duplicate. Nor mesos neither marathon list any duplicate (only docker does).
> Restarting the mesos-agent wipes out the reported missing container leaving the other ones alive.
> When all my nodes have the docker image layers cached I can deploy the sample platform smoothly and I don't get the previous errors.
> If a container needs a remote volume attached (EBS via REX-Ray) the error happens all the time. No matter if cached or not.
> Reading the code I suspect it is related to the _retryInterval_ of _Docker::inspect_ https://github.com/apache/mesos/blob/2e013890e47c30053b7b83cd205b432376589216/src/docker/docker.cpp#L950-L952 but there is no option to modify this setting.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)