[LEDE-DEV] [PATCH] uloop: use a waker for notifying sigchld and loop cancel events

Mats Karrman mats.dev.list at gmail.com
Wed Jun 15 07:54:53 PDT 2016


On 2016-06-15 15:16, Felix Fietkau wrote:
> On 2016-06-15 15:13, Hans Dedecker wrote:  >> On Wed, Jun 15, 2016 at 11:58 AM, Felix Fietkau <nbd at nbd.name> >> 
wrote: >>> On 2016-06-15 11:39, Conor O'Gorman wrote: >>>> On 09/06/16 
03:20, Yousong Zhou wrote: >>>>> Fix a race condition when do_sigchld, 
uloop_cancelled were >>>>> set just before epoll_wait(timeout=-1), 
resulting the loop >>>>> stuck in the syscall without noticing the 
events just >>>>> happened >>>>> >>>>> Signed-off-by: Yousong Zhou 
<yszhou4tech at gmail.com> --- >>>>> uloop-epoll.c  |  2 +- uloop-kqueue.c 
|  2 +- uloop.c >>>>> | 65 >>>>> 
++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 3 >>>>> files 
changed, 63 insertions(+), 6 deletions(-) >>>>> >>>> Why not change the 
timeout? >>> Changing the timeout would not fix the race, and it would 
lead >>> to unnecessary process wakeups and extra latency for signal >>> 
processing. >>> >>> - Felix >>> >>> 
_______________________________________________ Lede-dev mailing >>> 
list Lede-dev at lists.infradead.org >>> 
http://lists.infradead.org/mailman/listinfo/lede-dev >> Could it be that 
the wiker_pipe does not get properly initialized >> as waker_pipe never 
is assigned a fd value ? > I accidentally dropped that in a copy&paste 
screwup. Fix pushed to > git. > > Thanks, > > - Felix
Ran 118 reboots with this fix without any problem so there is a good 
chance that
the latest version of libubox (c2f2c47f3e9a2d709ec82a79f6fadd3124c18781)
finally fixed the issue.
:-) // Mats




More information about the Lede-dev mailing list