[libvirt] [Qemu-devel] qemu leaving unix sockets behind after VM is shut down

Chris Friesen chris.friesen at windriver.com
Tue May 6 14:52:09 UTC 2014


On 05/06/2014 07:39 AM, Stefan Hajnoczi wrote:
> On Tue, Apr 01, 2014 at 02:34:58PM -0600, Chris Friesen wrote:
>> When running qemu with something like this
>>
>> -device virtio-serial \
>> -chardev socket,path=/tmp/foo,server,nowait,id=foo \
>> -device virtserialport,chardev=foo,name=host.port.0
>>
>> the VM starts up as expected and creates a socket at /tmp/foo as expected.
>>
>> However, when I shut down the VM the socket at /tmp/foo is left
>> behind in the filesystem.  Basically qemu has "leaked" a file.
>>
>> With something like OpenStack where we could be creating/destroying
>> many VMs this could end up creating a significant number of files in
>> the specified directory.
>>
>> Has any thought been given to either automatically cleaning up the
>> unix socket in the filesystem when qemu exits, or else supporting
>> the abstract namespace for unix sockets to allow for automatic
>> cleanup?
>
> Libvirt has a special case for the monitor socket in its
> qemuProcessStop() function.
>
> Are you using the OpenStack libvirt driver?
>
> Perhaps QEMU should support cleanup but first I think we should check
> the situation with libvirt.

Yes, I am in fact using OpenStack/libvirt, and did eventually track down 
libvirt as the code that was cleaning up the monitor socket.

Even so, I think this sort of change would be valid in qemu itself. qemu 
created the files, so really it should be up to qemu to delete them when 
it's done with them.

They're not usable for anything with qemu not running, so there's no 
good reason to leave them laying around.

Chris






More information about the libvir-list mailing list