[libvirt] [PATCH] daemon: Unlink unix sockets at daemon shutdown
Daniel P. Berrange
berrange at redhat.com
Wed Jul 27 09:51:08 UTC 2011
On Wed, Jul 27, 2011 at 05:34:19PM +0800, Osier Yang wrote:
> 于 2011年07月27日 18:07, Osier Yang 写道:
> > ---
> > daemon/libvirtd.c | 6 ++++++
> > 1 files changed, 6 insertions(+), 0 deletions(-)
> >
> > diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
> > index 9e044e2..61f5a2d 100644
> > --- a/daemon/libvirtd.c
> > +++ b/daemon/libvirtd.c
> > @@ -1572,6 +1572,12 @@ cleanup:
> > if (pid_file)
> > unlink (pid_file);
> >
> > + if (sock_file && sock_file[0] != '@')
> > + unlink(sock_file);
> > +
> > + if (sock_file_ro && sock_file_ro[0] != '@')
> > + unlink(sock_file_ro);
> > +
NACK to this - cleanup should be done in the RPC classes
> With this patch, the socket files could be removed successfully.
>
> But it looks to me virNetSocketFree already unlink the socket files,
> it's weired
> the unix socket files still exists after daemon shutdown. So, this patch
> might be
> not quite right.
Yes, that suggests that virNetServerFree or something that
it calls is not cleaning up properly. It could be a missing
free somewhere, or a reference being held open.
It might be desirable to add an explicit virNetServerClose()
API which closes all sockets & unlinks them, separately
from virNetServerFree, so we ensure cleanup even in the event
of a reference count being leaked
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 libvir-list
mailing list