
On Fri, Nov 13, 2009 at 9:21 PM, Daniel P. Berrange <berrange@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@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list