[libvirt] [PATCH 2/2] Don't return fatal error in HAL driver init if HAL isn't running
Daniel Veillard
veillard at redhat.com
Fri Nov 13 14:49:06 UTC 2009
On Fri, Nov 13, 2009 at 12:21:11PM +0000, Daniel P. Berrange 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
>
> * 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;
> }
>
>
ACK, makes sense,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list