[libvirt-users] libvirtd terminates running instances after monitor's socket inode id is changed

Daniel P. Berrange berrange at redhat.com
Mon Jul 25 09:47:34 UTC 2016


On Fri, Jul 22, 2016 at 10:57:04AM -0700, Gavin Nicholson wrote:
> We accidentally moved /var/lib/libvirt/qemu to another directory which is
> on a different disk partition, then we moved it back; however, that caused
> changing the inode ids of the files inside /var/lib/libvirt/qemu including
> the socket files ( <instance>.monitor ) of the running VMs. The problem we
> are facing is that when libvirtd is restarted it terminates the running VMs
> with  "error : qemuMonitorOpenUnix:315 : monitor socket did not show up.:
> Connection refused”
> 
> We are trying to find a workaround so that when libvirtd is restarted it
> doesn’t stop the running VMs.
> 
> We are running libvirt 0.9.13

There's nothing either you or libvirt can do once you're in this situation.
While the socket may still be visible in the filesystem any attempt by
libvirt to connect() to that socket path will get ECONNREFUSED from the
kernel. Once this happens the only option is for the process listening
on the socket to close it and open a new listening socket. There's no
mechanism to get QEMU to do this and even if one were to be written, it
would still not help you as to use any updated QEMU you'd need to restart
QEMU which is the problem you're already facing.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvirt-users mailing list