If the images volume is out of space, "virsh start" will fail with "Permission denied". This is because it is unable to restore the context on the underlying image file. The reason for that is that the volume is out of space. Libvirt should correctly report to the admin the actual problem.
Here's the output:
error: Failed to start domain fedora30-arm-1
error: internal error: process exited while connecting to monitor: 2019-07-19 16:16:37.848+0000: Domain id=2 is tainted: host-cpu
2019-07-19T16:16:37.936692Z qemu-kvm: -drive file=/var/lib/libvirt/images/f30-armhfp-1.raw,format=raw,if=none,id=drive-virtio-disk0: Could not open '/var/lib/libvirt/images/f30-armhfp-1.raw': Permission denied
The output should be:
"Unable to start domain fedora30-arm-1 due to image volume out of space"
I'm inclined to close this, because libvirt does not inspect storage in any way. It can't possibly know that ENOSPC happened in QEMU. However, EPERM is the interesting part here. If there's not space at /var/lib/libvirt/images so that libvirt fails to relabel a file there then it should not continue and start qemu. What is the libvirt version please?
As suggested earlier, I am closing this. If you think this should be fixed please reply with the reasoning and libvirt version you encounter this problem with. Attaching debug logs is a big plus.