Re: [RFC][PATCH 2/2] exec: If possible don't wait for ptraced threads to be reaped

From: Eric W. Biederman
Date: Mon Apr 03 2017 - 17:10:27 EST


Oleg Nesterov <oleg@xxxxxxxxxx> writes:

> On 04/02, Eric W. Biederman wrote:
>>
>> Oleg Nesterov <oleg@xxxxxxxxxx> writes:
>>
>> > And btw zap_other_threads(may_hang == 0) is racy. Either you need tasklist or
>> > exit_notify() should set tsk->exit_state under siglock, otherwise zap() can
>> > return the wrong count.
>>
>> zap_other_thread(tsk, 0) only gets called in the case where we don't
>> care about the return value. It does not get called from fs/exec.c
>
> I meant that may_hang == 0 implies zap_other_threads(do_count => -1) which should
> return the number of threads which didn't pass exit_notify(). The returned value
> can be wrong unless you change exit_notify() to set exit_state under
> siglock.

Interesting an existing bug. I won't deny that one.

Subtle to catch but easy enough to fix.

Eric