lkml.org 
[lkml]   [2020]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: 5.8-rc*: kernel BUG at kernel/signal.c:1917
From
Date
On 20. 07. 20, 13:26, peterz@infradead.org wrote:
> On Mon, Jul 20, 2020 at 12:59:24PM +0200, peterz@infradead.org wrote:
>> On Mon, Jul 20, 2020 at 10:41:06AM +0200, Peter Zijlstra wrote:
>>> On Mon, Jul 20, 2020 at 10:26:58AM +0200, Oleg Nesterov wrote:
>>>> Peter,
>>>>
>>>> Let me add another note. TASK_TRACED/TASK_STOPPED was always protected by
>>>> ->siglock. In particular, ttwu(__TASK_TRACED) must be always called with
>>>> ->siglock held. That is why ptrace_freeze_traced() assumes it can safely
>>>> do s/TASK_TRACED/__TASK_TRACED/ under spin_lock(siglock).
>>>>
>>>> Can this change race with
>>>>
>>>> if (signal_pending_state(prev->state, prev)) {
>>>> prev->state = TASK_RUNNING;
>>>> }
>>>>
>>>> in __schedule() ? Hopefully not, signal-state is protected by siglock too.
>>>>
>>>> So I think this logic was correct even if it doesn't look nice. But "doesn't
>>>> look nice" is true for the whole ptrace code ;)
>>>
>>> *groan*... another bit of obscure magic :-(
>>>
>>> let me go try and wake up and figure out how best to deal with this.
>
> This then? That seems to survive the strace thing.

FWIW for me too.

thanks,
--
js

\
 
 \ /
  Last update: 2020-07-20 13:41    [W:0.130 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site