From 7fdfa640d227b6a45dc6a79d2be551d1495b34d9 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Wed, 13 Apr 2016 10:13:12 -0400 Subject: [PATCH] rpc: daemon: Fix virtlog/virtlock daemon reload Trying to reload/SIGUSR1 virtlogd or virtlockd fails with: error : virNetDaemonRun:747 : internal error: Not all servers restored, cannot run server Commit 252610f7 changed the daemon state json to allow tracking multiple servers. However it missed clearing dmn->srvObject after the json is empty, like the previous code paths handled. Later on in virNewDaemonRun, dmn->srvObject is expected to be empty otherwise we throw the above error. https://bugzilla.redhat.com/show_bug.cgi?id=1311013 (cherry picked from commit 9b69f02243f2abec4170576dfe28f8a4bb398b4e) --- src/rpc/virnetdaemon.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c index c99914d2ba..dcc89fa097 100644 --- a/src/rpc/virnetdaemon.c +++ b/src/rpc/virnetdaemon.c @@ -293,6 +293,10 @@ virNetDaemonAddServerPostExec(virNetDaemonPtr dmn, goto error; } + if (virJSONValueObjectKeysNumber(dmn->srvObject) == 0) { + virJSONValueFree(dmn->srvObject); + dmn->srvObject = NULL; + } } srv = virNetServerNewPostExecRestart(object, -- GitLab