On 2016-10-07 13:57, Zefir Kurtisi wrote:
> In ubus_cli_wait_for() there is a critical section between
> initially checking for the requested services and the
> following handling of 'ubus.object.add' events.
> 
> In our system we let procd (re)start services and synchronize
> inter-service dependencies by using 'ubus wait_for' in the
> initscripts' service_started() functions. There we observe
> that 'wait_for' randomly is waiting for the full timeout
> and returning UBUS_STATUS_TIMEOUT, even if the service it
> is waiting for is already up and running.
> 
> This happens when the service is started in the critical
> section mentioned above. This commit adds periodic lookup
> for the requested services while waiting for the 'add' event
> and with that fixes the observed failure.
> 
> Signed-off-by: Zefir Kurtisi <zefir.kurt...@neratec.com>
Instead of introducing yet another timer, wouldn't it also be possible
to close this race window by registering the event handler before
attempting the lookup?

- Felix

_______________________________________________
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev

Reply via email to