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 * 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@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list