daemon: cleanup state drivers in order reverse to init order

This patch aims to fix observed crash on daemon shutdown. Main thread is in
the process of state drivers cleanup, network driver is cleaned up and
qemu driver is not yet. Meanwhile eof event from qemu process triggers
qemuProcessStop -> networkReleaseActualDevice and crash happens as
network driver is already cleaned up.

Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
This commit is contained in:
Nikolay Shirokovskiy 2016-05-17 14:44:46 +03:00 committed by Cole Robinson
parent f8f7440870
commit 3ba93c754b

View File

@ -799,12 +799,12 @@ virStateInitialize(bool privileged,
int
virStateCleanup(void)
{
size_t i;
int r;
int ret = 0;
for (i = 0; i < virStateDriverTabCount; i++) {
if (virStateDriverTab[i]->stateCleanup &&
virStateDriverTab[i]->stateCleanup() < 0)
for (r = virStateDriverTabCount - 1; r >= 0; r--) {
if (virStateDriverTab[r]->stateCleanup &&
virStateDriverTab[r]->stateCleanup() < 0)
ret = -1;
}
return ret;