{"action":"closed","issue":{"url":"https://api.github.com/repos/emccode/mesos-module-dvdi/issues/53","labels_url":"https://api.github.com/repos/emccode/mesos-module-dvdi/issues/53/labels{/name}","comments_url":"https://api.github.com/repos/emccode/mesos-module-dvdi/issues/53/comments","events_url":"https://api.github.com/repos/emccode/mesos-module-dvdi/issues/53/events","html_url":"https://github.com/emccode/mesos-module-dvdi/issues/53","id":121908422,"number":53,"title":"resolve container isolation behavior for special use cases","user":{"login":"cantbewong","id":8400190,"avatar_url":"https://avatars.githubusercontent.com/u/8400190?v=3","gravatar_id":"","url":"https://api.github.com/users/cantbewong","html_url":"https://github.com/cantbewong","followers_url":"https://api.github.com/users/cantbewong/followers","following_url":"https://api.github.com/users/cantbewong/following{/other_user}","gists_url":"https://api.github.com/users/cantbewong/gists{/gist_id}","starred_url":"https://api.github.com/users/cantbewong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cantbewong/subscriptions","organizations_url":"https://api.github.com/users/cantbewong/orgs","repos_url":"https://api.github.com/users/cantbewong/repos","events_url":"https://api.github.com/users/cantbewong/events{/privacy}","received_events_url":"https://api.github.com/users/cantbewong/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/emccode/mesos-module-dvdi/labels/enhancement","name":"enhancement","color":"84b6eb"},{"url":"https://api.github.com/repos/emccode/mesos-module-dvdi/labels/roadmap","name":"roadmap","color":"c7def8"}],"state":"closed","locked":false,"assignee":{"login":"cantbewong","id":8400190,"avatar_url":"https://avatars.githubusercontent.com/u/8400190?v=3","gravatar_id":"","url":"https://api.github.com/users/cantbewong","html_url":"https://github.com/cantbewong","followers_url":"https://api.github.com/users/cantbewong/followers","following_url":"https://api.github.com/users/cantbewong/following{/other_user}","gists_url":"https://api.github.com/users/cantbewong/gists{/gist_id}","starred_url":"https://api.github.com/users/cantbewong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cantbewong/subscriptions","organizations_url":"https://api.github.com/users/cantbewong/orgs","repos_url":"https://api.github.com/users/cantbewong/repos","events_url":"https://api.github.com/users/cantbewong/events{/privacy}","received_events_url":"https://api.github.com/users/cantbewong/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/emccode/mesos-module-dvdi/milestones/4","html_url":"https://github.com/emccode/mesos-module-dvdi/milestones/0.3.1","labels_url":"https://api.github.com/repos/emccode/mesos-module-dvdi/milestones/4/labels","id":1425529,"number":4,"title":"0.3.1","description":"","creator":{"login":"clintonskitson","id":1395761,"avatar_url":"https://avatars.githubusercontent.com/u/1395761?v=3","gravatar_id":"","url":"https://api.github.com/users/clintonskitson","html_url":"https://github.com/clintonskitson","followers_url":"https://api.github.com/users/clintonskitson/followers","following_url":"https://api.github.com/users/clintonskitson/following{/other_user}","gists_url":"https://api.github.com/users/clintonskitson/gists{/gist_id}","starred_url":"https://api.github.com/users/clintonskitson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clintonskitson/subscriptions","organizations_url":"https://api.github.com/users/clintonskitson/orgs","repos_url":"https://api.github.com/users/clintonskitson/repos","events_url":"https://api.github.com/users/clintonskitson/events{/privacy}","received_events_url":"https://api.github.com/users/clintonskitson/received_events","type":"User","site_admin":false},"open_issues":2,"closed_issues":3,"state":"open","created_at":"2015-11-23T16:56:18Z","updated_at":"2015-12-15T00:27:41Z","due_on":"2015-12-15T08:00:00Z","closed_at":null},"comments":3,"created_at":"2015-12-13T08:55:06Z","updated_at":"2015-12-15T00:27:41Z","closed_at":"2015-12-15T00:27:41Z","body":"This describes desired behavior:\r\n1. What happens if the container path is not specified or is empty?\r\nno isolation, and mount is visible to all tasks on agent node\r\n\r\n2. What happens is container path is relative (no / prefix)?\r\nfailure returned from prepare()\r\n\r\n3. Currently the isolator allow multiple tasks to ask for a mount of the same volume. When this happens, all tasks share the volume.\r\nWhat happens if MULTIPLE  tasks ask for the same volume AND also specify a container path to ask for isolation?\r\nFirst task succeeds, any subsequent task asking for isolation gets failure on prepare(), since specifying a container path implies an expectation of isolation.\r\n\r\n4. When a container path is specified, and does not exist at prepare() time on the agent node, should the container path directory be automatically created on the agent node? \r\nOr should this result in a failure?\r\nIf the container path is auto-created, should it be removed when unmount occurs? \r\nIf it should be removed, what happens if a second task arrives bringing use count of container path >1? \r\nIf auto-created container paths are not removed, will proliferation of these over time cause problems such as inode exhaustion?\r\nAnswer: \r\nAuto-create only if container path is under /tmp. Never remove. (although OS /tmp processing may remove on reboot.)  \r\nIf the containerpath is not under /tmp, and does not exist, fail on prepare()\r\n\r\n5. When a mount is isolated with a container path, should the ownership and permissions be copied from container path to mount path?\r\nAnswer: always copy ownership and permissions from containerpath to mountpoint\r\n\r\nImplement these behaviors"}}