[libvirt] [PATCH 2/2] rpc: Rework timerActive logic in daemon
Michal Privoznik
mprivozn at redhat.com
Fri Jul 10 09:06:34 UTC 2015
On 10.07.2015 10:49, Martin Kletzander wrote:
> Daemon used false logic for determining whether there were any clients.
> When the timer was inactive, it was activated if at least one of the
> servers did not have clients. So the bool was being flipped there and
> back all the time in case there was one client, for example.
>
> Initially introduced by fa1420736882.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1240283
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> src/rpc/virnetdaemon.c | 24 +++++++++---------------
> 1 file changed, 9 insertions(+), 15 deletions(-)
>
> diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
> index 6b132823274c..19573c5f4c42 100644
> --- a/src/rpc/virnetdaemon.c
> +++ b/src/rpc/virnetdaemon.c
> @@ -682,23 +682,17 @@ virNetDaemonRun(virNetDaemonPtr dmn)
> */
> if (dmn->autoShutdownTimeout) {
> if (timerActive) {
> - for (i = 0; i < dmn->nservers; i++) {
> - if (virNetServerHasClients(dmn->servers[i])) {
> - VIR_DEBUG("Deactivating shutdown timer %d", timerid);
> - virEventUpdateTimeout(timerid, -1);
> - timerActive = false;
> - break;
> - }
> + if (virNetDaemonHasClients(dmn)) {
> + VIR_DEBUG("Deactivating shutdown timer %d", timerid);
> + virEventUpdateTimeout(timerid, -1);
> + timerActive = false;
> }
> } else {
> - for (i = 0; i < dmn->nservers; i++) {
> - if (!virNetServerHasClients(dmn->servers[i])) {
> - VIR_DEBUG("Activating shutdown timer %d", timerid);
> - virEventUpdateTimeout(timerid,
> - dmn->autoShutdownTimeout * 1000);
> - timerActive = true;
> - break;
> - }
> + if (virNetDaemonHasClients(dmn)) {
I believe this condition needs to be negated.
> + VIR_DEBUG("Activating shutdown timer %d", timerid);
> + virEventUpdateTimeout(timerid,
> + dmn->autoShutdownTimeout * 1000);
> + timerActive = true;
> }
> }
> }
>
Good catch! ACK series.
Michal
More information about the libvir-list
mailing list