
On Thu, Jun 20, 2019 at 02:32:40PM +0200, Michal Privoznik wrote:
On 6/20/19 1:58 PM, Daniel P. Berrangé wrote:
On Thu, Jun 20, 2019 at 12:23:07PM +0200, Michal Privoznik wrote:
On 6/17/19 3:29 PM, Daniel P. Berrangé wrote:
On Thu, Apr 25, 2019 at 10:19:54AM +0200, Michal Privoznik wrote:
This effectively reverts d7420430ce6 and adds new code.
Here is the problem: Imagine a file X that is to be shared between two domains as a disk. Let the first domain (vm1) have seclabel remembering turned on and the other (vm2) has it turned off. Assume that both domains will run under the same user, but the original owner of X is different (i.e. trying to access X without relabelling leads to EPERM).
How do we get into this situation ? Is this the case when we have a guest which was running before libvirt was upgraded, and then a new guest is launched ?
Yes, that's one of the possible scenarios. Another possible scenario would be (and this won't happen yet in reality beacuse NFS still does not implement XATTRs, but once they do we might hit it): two daemons and one shared NFS mount. One of the daemons has the feature enabled, the other has it disabled. But as I say, this won't happen with NFS today. But maybe there are some other shared filesystems which do implement XATTRs?
IMHO if you are using a set of virt hosts with a shared NFS and have only enabled label mgmt on a subset of hosts that's a deployment error in general.
Having said that, this is precisely the scearnio you'd have if you are part way through a libvirt upgrade across many hosts.
Our core problem is that we have zero knowledge about other hosts, neither their config, or even whether they exist at all, so we can't do the safe thing automatically.
Yep, this is the root cause of the problem.
I'm still not a fan of just giving up & deleting the feature though.
How about we create a qemu.conf option to turn on/off label mgmt for shared volumes, defaulting to off. Document that it should only be turned off if all hosts are participating & no historical VMs are running ?
This could work. But if possible, I'd probably do that in a follow up series? I mean, this series is long enough already and I can see it working/being merged as I write what you suggest.
Yep, no objection to that.
In theory on upgrade, we could look at all running VMs on our own host and record the ref count data that is otherwise missing. That could at least let it work correctly on a the single-host non-shared FS scenario.
Yeah, since we don't know about other daemons we could do that only for local files.
Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|