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