{"action":"closed","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64119","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64119/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64119/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64119/events","html_url":"https://github.com/kubernetes/kubernetes/issues/64119","id":325055347,"node_id":"MDU6SXNzdWUzMjUwNTUzNDc=","number":64119,"title":"RBD volumes cannot be mapped read only to more than 1 container - not PV related","user":{"login":"nimbixler","id":21957822,"node_id":"MDQ6VXNlcjIxOTU3ODIy","avatar_url":"https://avatars3.githubusercontent.com/u/21957822?v=4","gravatar_id":"","url":"https://api.github.com/users/nimbixler","html_url":"https://github.com/nimbixler","followers_url":"https://api.github.com/users/nimbixler/followers","following_url":"https://api.github.com/users/nimbixler/following{/other_user}","gists_url":"https://api.github.com/users/nimbixler/gists{/gist_id}","starred_url":"https://api.github.com/users/nimbixler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nimbixler/subscriptions","organizations_url":"https://api.github.com/users/nimbixler/orgs","repos_url":"https://api.github.com/users/nimbixler/repos","events_url":"https://api.github.com/users/nimbixler/events{/privacy}","received_events_url":"https://api.github.com/users/nimbixler/received_events","type":"User","site_admin":false},"labels":[{"id":105146071,"node_id":"MDU6TGFiZWwxMDUxNDYwNzE=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/bug","name":"kind/bug","color":"e11d21","default":false},{"id":267761362,"node_id":"MDU6TGFiZWwyNjc3NjEzNjI=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/feature","name":"kind/feature","color":"c7def8","default":false},{"id":173493665,"node_id":"MDU6TGFiZWwxNzM0OTM2NjU=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/node","name":"sig/node","color":"d2b48c","default":false},{"id":169428334,"node_id":"MDU6TGFiZWwxNjk0MjgzMzQ=","url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/storage","name":"sig/storage","color":"d2b48c","default":false}],"state":"closed","locked":false,"assignee":{"login":"xiaoxubeii","id":912096,"node_id":"MDQ6VXNlcjkxMjA5Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/912096?v=4","gravatar_id":"","url":"https://api.github.com/users/xiaoxubeii","html_url":"https://github.com/xiaoxubeii","followers_url":"https://api.github.com/users/xiaoxubeii/followers","following_url":"https://api.github.com/users/xiaoxubeii/following{/other_user}","gists_url":"https://api.github.com/users/xiaoxubeii/gists{/gist_id}","starred_url":"https://api.github.com/users/xiaoxubeii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiaoxubeii/subscriptions","organizations_url":"https://api.github.com/users/xiaoxubeii/orgs","repos_url":"https://api.github.com/users/xiaoxubeii/repos","events_url":"https://api.github.com/users/xiaoxubeii/events{/privacy}","received_events_url":"https://api.github.com/users/xiaoxubeii/received_events","type":"User","site_admin":false},"assignees":[{"login":"xiaoxubeii","id":912096,"node_id":"MDQ6VXNlcjkxMjA5Ng==","avatar_url":"https://avatars3.githubusercontent.com/u/912096?v=4","gravatar_id":"","url":"https://api.github.com/users/xiaoxubeii","html_url":"https://github.com/xiaoxubeii","followers_url":"https://api.github.com/users/xiaoxubeii/followers","following_url":"https://api.github.com/users/xiaoxubeii/following{/other_user}","gists_url":"https://api.github.com/users/xiaoxubeii/gists{/gist_id}","starred_url":"https://api.github.com/users/xiaoxubeii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiaoxubeii/subscriptions","organizations_url":"https://api.github.com/users/xiaoxubeii/orgs","repos_url":"https://api.github.com/users/xiaoxubeii/repos","events_url":"https://api.github.com/users/xiaoxubeii/events{/privacy}","received_events_url":"https://api.github.com/users/xiaoxubeii/received_events","type":"User","site_admin":false}],"milestone":null,"comments":5,"created_at":"2018-05-21T20:52:07Z","updated_at":"2018-06-20T15:31:41Z","closed_at":"2018-06-20T15:31:41Z","author_association":"NONE","body":"<!-- This form is for bug reports and feature requests ONLY!\r\n\r\nIf you're looking for help check [Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes) and the [troubleshooting guide](https://kubernetes.io/docs/tasks/debug-application-cluster/troubleshooting/).\r\n\r\nIf this may be security issue, please disclose it privately via https://kubernetes.io/security/.\r\n-->\r\n\r\n**Is this a BUG REPORT or FEATURE REQUEST?**:\r\n\r\n> Uncomment only one, leave it on its own line:\r\n>\r\n/kind bug\r\n> /kind feature\r\n\r\n\r\n**What happened**:\r\nI created a job with parallelism=2, 1 container in each pod, and a rbd volume attached to the container.  Attachment was read-only.\r\nOnly 1 pod got the RBD mounted while the other POD failed with \"still in use\" in syslog, referencing the code in rbd_util.go that checks watchers.  Note that this is not the same thing as this:\r\nhttps://github.com/kubernetes/kubernetes/pull/63424\r\n\r\nwhich refers to persistent volumes.  This is not a persistent volume -the use case is to map read-only data to multiple containers from a single RBD, like for using a reference data set, etc.  According to the documentation this *should* work (see below).\r\n\r\n**What you expected to happen**:\r\n\r\nI expect this to happen per the documentation: https://kubernetes.io/docs/concepts/storage/volumes/#rbd\r\n\r\n\"A feature of RBD is that it can be mounted as read-only by multiple consumers simultaneously. This means that you can pre-populate a volume with your dataset and then serve it in parallel from as many Pods as you need. Unfortunately, RBD volumes can only be mounted by a single consumer in read-write mode - no simultaneous writers allowed.\"\r\n\r\n**How to reproduce it (as minimally and precisely as possible)**:\r\n\r\nCreate 2 pods, each with 1 container mapping a single rbd read only.\r\n\r\n**Anything else we need to know?**:\r\n\r\n**Environment**:\r\n- Kubernetes version (use `kubectl version`):\r\n1.9.4\r\n- Cloud provider or hardware configuration:\r\nself, x86_64 systems\r\n- OS (e.g. from /etc/os-release): Ubuntu Xenial\r\n- Kernel (e.g. `uname -a`):\r\nLinux dal1util6p30 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux\r\n- Install tools:\r\nceph\r\n- Others:\r\nI believe that in the case where a read-only mapping is being requested, the code should not check watchers.  Again this is consistent with the documentation but it doesn't work that way.  If a PV/PVC is the \"right\" way to do this it seems seriously overkill and the management overhead is severe, especially in a large scale environment.  The documentation states that the advantage of RBD is to be able to attach read-only volumes to multiple containers concurrently, and this is how I believe it should work.  The watcher check is artificial and really needs to apply only to read/write.  I can fix this bug myself but would like to understand the reasoning behind it a bit more.\r\nThanks!\r\nLeo Reiter"}}
{"actor":{"display_login":"k8s-merge-robot"}}