skip failing callouts
Richard Hughes
hughsient at gmail.com
Tue Aug 30 08:23:01 PDT 2005
On Fri, 2005-08-26 at 09:40 +0200, Danny Kukawka wrote:
> On Friday 26 August 2005 03:52, Kay Sievers wrote:
> > This fixes the the handling of failing or non-existing callouts specified
> > in fdi files. In this case HAL never initialized completely and the daemon
> > killed itself after the specified timeout for the callouts.
> >
> > With this patch HAL skips failing callouts in the execution list instead of
> > waiting in the mainloop to be killed. :)
>
> Tested and it works as expected fine. No suicide HAL anymore ;)
No so sure. I'm developing a method that calls a single script, and I'm
getting a seg-fault in hald when this script is not present.
Did you test this with only one callout?
15:40:04.232 [I] hald_dbus.c:2895: OK for method 'SetLCDBrightness' with
signature 'i' on interface
'org.freedesktop.Hal.Device.SystemPowerManagement' for UDI
'/org/freedesktop/Hal/devices/acpi_toshiba' and execpath
'hal-system-power-set-brightness'
15:40:04.234 [E] util.c:684: Couldn't spawn
'hal-system-power-set-brightness' err=Failed to execute child process
"hal-system-power-set-brightness" (Permission denied)!
Segmentation fault
When I strace hald, I see a value of device = 0x1 is present for
*device.
[hald/device.c] hal_device_num_properties (HalDevice *device)
which is quite clearly going to trip up:
[hald/device.c] g_slist_length (device->properties)
I've tried to trace back the code, and I think I'm under the
understanding that callout_failed doesn't check to see if that callout
was last.
But I don't really understand the code flow, so someone with more
expertise in that area will have to help me.
Thanks,
Richard.
More information about the hal
mailing list