[LEDE-DEV] ubus/libubox: SIGTERM/SIGINT signals received during ubus_complete_request() calls are ignored
Felix Fietkau
nbd at nbd.name
Fri Feb 3 07:19:21 PST 2017
On 2017-02-03 15:57, Alin Năstac wrote:
> Hi Felix,
>
> The SIGTERM ignore issue I was experiencing before is no longer
> reproducible after I apply your patch.
>
> However, I'm concerned about a possible ignore of SIGTERM signal
> received during a ubus_complete_request() call. If ctx->stack_depth is
> 0, any such signal received between prev_uloop_initialization and the
> reset of ulopp_cancelling to false will be ignored. Is this
> "uloop_cancelling = false" really necessary?
>
> BTW, I think the reset of uloop_status and uloop_cancelled should be
> executed before uloop_setup_signals() like so:
> if (!recursive_calls++) {
> uloop_status = 0;
> uloop_cancelled = false;
> uloop_setup_signals(true);
> }
I was worried about the corner case of performing a ubus request after
uloop_run has already completed.
I guess one way this could be addressed is by setting uloop_cancelled =
false at the end of uloop_run().
- Felix
More information about the Lede-dev
mailing list