On Fri, Nov 13, 2009 at 9:21 PM, Daniel P. Berrange <berrange(a)redhat.com> wrote:
The HAL driver returns a fatal error code in the case where HAL
is not running. This causes the entire libvirtd daemon to quit
which isn't desirable. Instead it should simply disable the HAL
driver
I'm not sure what happens on this defect though, I guess this may be
a timing problem. I encountered this error during host and libvirtd bootup.
However, once the host bootup has complete and then I starts libvirtd
again, it succeeds.
This behavior had never occurred with 0.7.2.
Anyway, this fix certainly avoids worse result, ie, libvirtd quit, so ACK
ozaki-r
* src/node_device/node_device_hal.c: Quietly disable HAL if it is
not running
---
src/node_device/node_device_hal.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/node_device/node_device_hal.c b/src/node_device/node_device_hal.c
index 918a3a9..1e1d872 100644
--- a/src/node_device/node_device_hal.c
+++ b/src/node_device/node_device_hal.c
@@ -692,6 +692,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
DBusError err;
char **udi = NULL;
int num_devs, i;
+ int ret = -1;
/* Ensure caps_tbl is sorted by capability name */
qsort(caps_tbl, ARRAY_CARDINALITY(caps_tbl), sizeof(caps_tbl[0]),
@@ -728,7 +729,11 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
goto failure;
}
if (!libhal_ctx_init(hal_ctx, &err)) {
- VIR_ERROR0("libhal_ctx_init failed\n");
+ VIR_ERROR0("libhal_ctx_init failed, haldaemon is probably not
running\n");
+ /* We don't want to show a fatal error here,
+ otherwise entire libvirtd shuts down when
+ hald isn't running */
+ ret = 0;
goto failure;
}
@@ -787,7 +792,7 @@ static int halDeviceMonitorStartup(int privileged ATTRIBUTE_UNUSED)
nodeDeviceUnlock(driverState);
VIR_FREE(driverState);
- return -1;
+ return ret;
}
--
1.6.2.5
--
Libvir-list mailing list
Libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list