Skip to content

(Was: ptrace() hangs on attempt to seize/attach stopped & frozen task)

Oleg Nesterov lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest2 patches 2 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/2ptrace: make wait_on_bit(JOBCTL_TRAPPING_BIT) in ptrace_attach() killablekernel/ptrace.c+8 -21 reply
2/2ptrace: task_stopped_code(ptrace => true) can't see TASK_STOPPED taskkernel/exit.c+1 -11 reply

Reviews trailers per patch

All 2 patches have a Reviewed-by or Acked-by.

PatchTejun Heo
1/2A-b
2/2A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/2] (Was: ptrace() hangs on attempt to seize/attach stopped & frozen task)
Quoted 2 lines · Andrey Ryabinin

So, the ptrace() hangs if we try to attach to stopped task from freezing cgroup.

OK, lets make it killable at least, TASK_KILLABLE looks better in any case.

I am starting to think again that we should remove JOBCTL_TRAPPING, but this needs a bit more discussion and probably testing.

Anyway I agree with Tejun, the freezer doesn't look nice too.

Hmm. I need to re-check but it seems we have another problem... ptrace_stop() does task_participate_group_stop() and this (in particular) clears JOBCTL_STOP_PENDING. This is only correct if the task is still traced, but this is not necessarily true and we can in fact clear JOBCTL_STOP_PENDING set by __ptrace_unlink() called by the exiting tracer.

Oleg.