mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Rukletsov <ruklet...@gmail.com>
Subject Re: Review Request 49555: Updated mesos-docker-executor to use health check via library way.
Date Wed, 24 Aug 2016 12:50:09 GMT

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/49555/#review146651
-----------------------------------------------------------


Ship it!




Thanks a lot for doing manual testing, Haosdent!


src/docker/executor.cpp (line 87)
<https://reviews.apache.org/r/49555/#comment213216>

    We don't need this here, but I'm fine leaving it, because most probably we'll have to
pass it to the `HealthChecker` library in order to locate a wrapper for TCP health checks.


- Alexander Rukletsov


On Aug. 21, 2016, 6:42 p.m., haosdent huang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/49555/
> -----------------------------------------------------------
> 
> (Updated Aug. 21, 2016, 6:42 p.m.)
> 
> 
> Review request for mesos, Alexander Rukletsov, Benjamin Mahler, Gastón Kleiman, Gilbert
Song, Jie Yu, and Timothy Chen.
> 
> 
> Bugs: MESOS-5954
>     https://issues.apache.org/jira/browse/MESOS-5954
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> We change the mesos-executor to use health check via library way in
> https://reviews.apache.org/r/49389/. To keep consistent, we replace
> health check in mesos-docker-executor from binary way to library way.
> In this patch, we rename `healthCheckDir` to `launcherDir` as well to
> keep consistent with mesos-executor.
> 
> 
> Diffs
> -----
> 
>   src/docker/executor.cpp 8d679cd33b6ddf3a5c11bb8c458a97b8809473ac 
> 
> Diff: https://reviews.apache.org/r/49555/diff/
> 
> 
> Testing
> -------
> 
> Test with Marathon locally.
> 
> # 1. Success case.
> 
> I start `sleep 200` with the Docker container and use `ls /mnt/mesos/sandbox` as the
health check command.
> 
> According the qurey result of `http://localhost:8080/v2/apps/test-sleep`, could see Marathon
receive healthy status.
> 
> ```
> # truncate unnecessary messages
> {
>   "app": {
>     "id": "/test-health",
>     "cmd": "sleep 200",
>     "container": {
>       "type": "DOCKER",
>       "volumes": [],
>       "docker": {
>         "image": "ubuntu",
>         "network": "HOST"
>       }
>     },
>     "healthChecks": [
>       {
>         "protocol": "COMMAND",
>         "command": {
>           "value": "ls /mnt/mesos/sandbox"
>         },
>         "gracePeriodSeconds": 300,
>         "intervalSeconds": 60,
>         "timeoutSeconds": 20,
>         "maxConsecutiveFailures": 3
>       }
>     ],
>     "tasksStaged": 0,
>     "tasksRunning": 1,
>     "tasksHealthy": 1,
>     "tasksUnhealthy": 0,
>     "tasks": [
>       {
>         "id": "test-health.8d4ba884-585c-11e6-9fb5-0242e663b1f5",
>         "slaveId": "ec5359a2-9c63-4c2e-86da-3ed8ef94800b-S0",
>         "host": "127.0.0.1",
>         "startedAt": "2016-08-02T02:55:23.433Z",
>         "stagedAt": "2016-08-02T02:55:21.217Z",
>         "version": "2016-08-02T02:48:31.054Z",
>         "ipAddresses": [
>           {
>             "ipAddress": "127.0.0.1",
>             "protocol": "IPv4"
>           }
>         ],
>         "appId": "/test-health",
>         "healthCheckResults": [
>           {
>             "alive": true,
>             "consecutiveFailures": 0,
>             "firstSuccess": "2016-08-02T02:55:23.652Z",
>             "lastFailure": null,
>             "lastSuccess": "2016-08-02T02:55:23.652Z",
>             "lastFailureCause": null,
>             "taskId": "test-health.8d4ba884-585c-11e6-9fb5-0242e663b1f5"
>           }
>         ]
>       }
>     ]
>   }
> }
> ```
> 
> # 2. Failed case.
> 
> Then I start a similar application which use `false` as health check command, could see
Marathon receive unhealthy status.
> 
> ```
> # truncate unnecessary messages
> {
>   "app": {
>     "id": "/test-unhealth",
>     "cmd": "sleep 200",
>     "container": {
>       "type": "DOCKER",
>       "volumes": [],
>       "docker": {
>         "image": "ubuntu",
>         "network": "HOST"
>       }
>     },
>     "healthChecks": [
>       {
>         "protocol": "COMMAND",
>         "command": {
>           "value": "false"
>         },
>         "gracePeriodSeconds": 5,
>         "intervalSeconds": 3,
>         "timeoutSeconds": 20,
>         "maxConsecutiveFailures": 3
>       }
>     ],
>     "tasksStaged": 0,
>     "tasksRunning": 1,
>     "tasksHealthy": 0,
>     "tasksUnhealthy": 1,
>     "tasks": [
>       {
>         "id": "test-unhealth.48a6318a-585e-11e6-9fb5-0242e663b1f5",
>         "slaveId": "ec5359a2-9c63-4c2e-86da-3ed8ef94800b-S0",
>         "host": "127.0.0.1",
>         "startedAt": "2016-08-02T03:07:47.310Z",
>         "stagedAt": "2016-08-02T03:07:45.041Z",
>         "ipAddresses": [
>           {
>             "ipAddress": "127.0.0.1",
>             "protocol": "IPv4"
>           }
>         ],
>         "appId": "/test-unhealth",
>         "healthCheckResults": [
>           {
>             "alive": false,
>             "consecutiveFailures": 1,
>             "firstSuccess": null,
>             "lastFailure": "2016-08-02T03:07:53.800Z",
>             "lastSuccess": null,
>             "lastFailureCause": "",
>             "taskId": "test-unhealth.48a6318a-585e-11e6-9fb5-0242e663b1f5"
>           }
>         ]
>       }
>     ]
>   }
> }
> ```
> 
> 
> Thanks,
> 
> haosdent huang
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message