
On 04/21/2015 10:34 AM, Laine Stump wrote:
On 16.04.2015 21:42, Cole Robinson wrote:
If libvirt-daemon-config-network is installed while libvirtd is already running, the daemon needs to be restarted to pick up the change.
Instead let's trigger a daemon reload when the package is first installed. Then the default network is available immediately if libvirtd was already running.
https://bugzilla.redhat.com/show_bug.cgi?id=867546 --- libvirt.spec.in | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/libvirt.spec.in b/libvirt.spec.in index e08c9e7..ada0257 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -1770,6 +1770,14 @@ if test $1 -eq 1 && test ! -f %{_sysconfdir}/libvirt/qemu/networks/default.xml ; < %{_datadir}/libvirt/networks/default.xml \ > %{_sysconfdir}/libvirt/qemu/networks/default.xml ln -s ../default.xml %{_sysconfdir}/libvirt/qemu/networks/autostart/default.xml + + # Make sure libvirt picks up the new network defininiton + %if %{with_systemd} + /bin/systemctl reload libvirtd.service >/dev/null 2>&1 ||: + %else + /sbin/service libvirtd reload > /dev/null 2>&1 || : + %endif + fi %endif
There's already a 'systemctl try-restart libvirtd.service' call just a few lines below. They were added in 4789fb2e. I think we can use them - also, I'm not sure why it doesn't work since we are restarting daemon even now (without this patch). I think the issue may be that the default network is in a different sub-package than libvirtd, so libvirtd is already started/restart by the time the file is installed. Or something like that. I do recall that
On 04/21/2015 09:48 AM, Michal Privoznik wrote: this is a real problem though.
Heh. And if I had taken the time to go read the BZ that Cole referenced in his commit log message, I would have seen that I came to that same conclusion all the way back in 2012 :-/ It's amazing just how much I forget... So I think this patch will be okay if we can just verify that it doesn't experience the same problem that I experienced when performing the reload manually. (Or, what about the idea I posted in the BZ about checking if libvirtd is running, and sending the file to "virsh net-define" instead of copying it when that's the case?)