[libvirt] [PATCH] daemon: Fix regression of libvirtd reloading support

Osier Yang jyang at redhat.com
Mon Aug 15 07:41:23 UTC 2011


于 2011年08月15日 15:39, Jiri Denemark 写道:
> On Mon, Aug 15, 2011 at 15:50:46 +0800, Osier Yang wrote:
>> This is introduced by commit df0b57a95a, which forgot to
>> add signal handler for SIGHUP.
>>
>> A simple reproduce method:
>>
>> 1) Create a domain XML under /etc/libvirt/qemu
>> 2) % kill -SIGHUP $(pidof libvirtd)
>> 3) % virsh list --all (the new created domain XML is not listed)
>> ---
>>   daemon/libvirtd.c |   13 +++++++++++++
>>   1 files changed, 13 insertions(+), 0 deletions(-)
>>
>> diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c
>> index b866a01..3e0159b 100644
>> --- a/daemon/libvirtd.c
>> +++ b/daemon/libvirtd.c
>> @@ -1102,6 +1102,17 @@ static void daemonShutdownHandler(virNetServerPtr srv,
>>       virNetServerQuit(srv);
>>   }
>>
>> +static void daemonReloadHandler(virNetServerPtr srv ATTRIBUTE_UNUSED,
>> +                                siginfo_t *sig ATTRIBUTE_UNUSED,
>> +                                void *opaque ATTRIBUTE_UNUSED)
>> +{
>> +        VIR_INFO(_("Reloading configuration on SIGHUP"));
> This message shouldn't be translated. We only translate VIR_ERROR messages.
> Make syntax-check would fail because of this.
>
>> +        virHookCall(VIR_HOOK_DRIVER_DAEMON, "-",
>> +                    VIR_HOOK_DAEMON_OP_RELOAD, SIGHUP, "SIGHUP", NULL);
>> +        if (virStateReload()<  0)
>> +            VIR_WARN("Error while reloading drivers");
>> +}
>> +
>>   static int daemonSetupSignals(virNetServerPtr srv)
>>   {
>>       if (virNetServerAddSignalHandler(srv, SIGINT, daemonShutdownHandler, NULL)<  0)
>> @@ -1110,6 +1121,8 @@ static int daemonSetupSignals(virNetServerPtr srv)
>>           return -1;
>>       if (virNetServerAddSignalHandler(srv, SIGTERM, daemonShutdownHandler, NULL)<  0)
>>           return -1;
>> +    if (virNetServerAddSignalHandler(srv, SIGHUP, daemonReloadHandler, NULL)<  0)
>> +        return -1;
>>       return 0;
>>   }
> ACK with _() removed from VIR_INFO.
>
> Jirka

Thanks, I pushed with the change.

Osier




More information about the libvir-list mailing list