You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "David Ko (JIRA)" <ji...@apache.org> on 2018/10/24 14:27:00 UTC

[jira] [Created] (MESOS-9352) Data in persistent volume deleted accidentally when using Docker container and Persistent volume

David Ko created MESOS-9352:
-------------------------------

             Summary: Data in persistent volume deleted accidentally when using Docker container and Persistent volume
                 Key: MESOS-9352
                 URL: https://issues.apache.org/jira/browse/MESOS-9352
             Project: Mesos
          Issue Type: Bug
          Components: agent
    Affects Versions: 1.5.2
         Environment: DCOS 1.11.6

Mesos 1.5.2
            Reporter: David Ko
         Attachments: image-2018-10-24-22-20-51-059.png, image-2018-10-24-22-21-13-399.png

*Step 1: *Use below JSON config to create a Mysql server using Docker image and Persistent Volume

{code:javascript}
{
  "env": {
    "MYSQL_USER": "wordpress",
    "MYSQL_PASSWORD": "secret",
    "MYSQL_ROOT_PASSWORD": "supersecret",
    "MYSQL_DATABASE": "wordpress"
  },
  "id": "/mysqlgc",
  "backoffFactor": 1.15,
  "backoffSeconds": 1,
  "constraints": [
    [
      "hostname",
      "IS",
      "172.27.12.216"
    ]
  ],
  "container": {
    "portMappings": [
      {
        "containerPort": 3306,
        "hostPort": 0,
        "protocol": "tcp",
        "servicePort": 10000
      }
    ],
    "type": "DOCKER",
    "volumes": [
      {
        "persistent": {
          "type": "root",
          "size": 1000,
          "constraints": []
        },
        "mode": "RW",
        "containerPath": "mysqldata"
      },
      {
        "containerPath": "/var/lib/mysql",
        "hostPath": "mysqldata",
        "mode": "RW"
      }
    ],
    "docker": {
      "image": "mysql",
      "forcePullImage": false,
      "privileged": false,
      "parameters": []
    }
  },
  "cpus": 1,
  "disk": 0,
  "instances": 1,
  "maxLaunchDelaySeconds": 3600,
  "mem": 512,
  "gpus": 0,
  "networks": [
    {
      "mode": "container/bridge"
    }
  ],
  "residency": {
    "relaunchEscalationTimeoutSeconds": 3600,
    "taskLostBehavior": "WAIT_FOREVER"
  },
  "requirePorts": false,
  "upgradeStrategy": {
    "maximumOverCapacity": 0,
    "minimumHealthCapacity": 0
  },
  "killSelection": "YOUNGEST_FIRST",
  "unreachableStrategy": "disabled",
  "healthChecks": [],
  "fetch": []
}
{code}

*Step 2: *Kill mysqld process to force rescheduling new Mysql task, but found 2 mount points to the same persistent volume, it means old mount point did not unmount immediately.

!image-2018-10-24-22-20-51-059.png!

*Step 3: *After GC, data in persistent volume deleted accidentally, but mysqld (mesos task) still running

!image-2018-10-24-22-21-13-399.png!

*Step 3: *Delete Mysql service from Marathon, all mount points unable to unmount, even the service already deleted.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)