[SSSD] Design Discussion: Periodic task API

Pavel Březina pbrezina at redhat.com
Mon Apr 29 18:05:43 UTC 2013


On 04/29/2013 07:52 PM, Simo Sorce wrote:
> On Mon, 2013-04-29 at 11:54 +0200, Pavel Březina wrote:
>>
>> Ah, yes. If the request returns ERR_STOP_PERIODIC_TASK, the task will
>> be
>> completely destroyed, otherwise it will reschedule: when EOK, it will
>> fire the request in last-execution-time + period, otherwise now +
>> period.
>>
> Wouldn't it be simpler to simply stop on any error, and reschedule only
> when EOK is returned ?
> This way the task can bubble up the error all the wya w/o having to mask
> it to a ERR_STOP_PERIODIC_TASK error at the very end.

No, you want to terminate the periodic task only on fatal error which 
you can't recover from. E.g. you want to reschedule the task when you 
can't connect to LDAP, but terminate it if LDAP server doesn't support 
some extension.

If you return ERR_STOP_PERIODIC_TASK, the task will not be rescheduled. 
It will be rescheduled on any other error code and logged as appropriate.

> This way also the periodic task handler can report exactly what error
> cause a periodic task to fail and report it at a high level.
> Freeing the task memory context instead would free the task w/o
> reporting any error.
>
> Simo.





More information about the sssd-devel mailing list