Utrace .report_jctl serialization issue ?

Roland McGrath roland at redhat.com
Thu Nov 11 20:53:51 UTC 2010


> Is a utrace engine with .report_jctl enabled suppose to handle
> do_notify_parent_cldstop(current, notify) processing for the last
> stopping task ?  Or should it muck with task->ptrace to force
> tracehook_notify_jctl() to return a non-zero value ?

I can't figure out exactly how to construe this as a question about the
utrace API.  The documented API is that each thread gets a report_jctl
callback, and the @notify argument is zero in all threads but one.

> I ask because I have a simple multi-threaded process with a utrace engine
> attached to the process group leader; .report_jctl is enabled.

Do you mean the thread_group leader of one process in the process group?
Or do you mean multiple utrace engines, one per thread, all in the process
whose pid==pgid (that's what "process group leader" means in POSIX)?

> If I SIGTSTP the process, occasionally control is not returned to the
> shell.

That sounds like a kernel bug.  There should be nothing your report_jctl
callback could do (assuming it doesn't send more signals itself) that
affects the normal job control semantics.

The kernels that are appropriate to discuss here are upstream kernels with
the current utrace patches applied (i.e. what you get in the current
utrace-ptrace git branch), or the most recent Fedora kernels that should
include that same code.  The code in question might well be the same in
RHEL6 kernels, but RHEL issues need to be addressed through the proper RHEL
support channels.  What we will help you with here is the current utrace
development code.

Perhaps Oleg and/or I will get time soon to look into this issue.
Chances are better if you provide a test case in the form of a simple
utrace module and a test scenario using it.


Thanks,
Roland




More information about the utrace-devel mailing list