Description of problem: I get a kernel oops when tracing multiple processes using ptrace and terminating one of the tracing processes with ctrl-c. The computer is then completely hung. Version-Release number of selected component (if applicable): 2.6.19-1.2911.fc6 for x86_64 How reproducible: Happens almost every time the attached test case is run. Steps to Reproduce: 1. Untar the attached test case, "cd ptrace-oops", "make". 2. Open 4 terminals, cd to ptrace-oops in all of them. 3. Run "./target" in a terminal, run "./monitor <pid>" with the pid printed by the target program in another terminal. Do the same thing in the other pair of terminals. 4. Press ctrl-c in one of the terminals running the monitor program. Actual results: Kernel oops, completely hung computer. Expected results: No kernel oops. Additional info:
Created attachment 148265 [details] Test case
Please post the oops messages.
I am getting a couple of different oops messages. They also differ slightly between tracing a 64-bit process and a 32-bit process. Attaching a few samples.
Created attachment 148287 [details] Oops message, tracing 64-bit process.
Created attachment 148288 [details] Oops message, tracing 64-bit process.
Created attachment 148289 [details] Oops message, tracing 32-bit process.
Major ptrace/utrace update is in 2.6.20-1.2933.fc6. Please test.
It still oopses and locks up the machine, but with a different oops message.
Created attachment 150537 [details] Oops message from 2.6.20-1.2933.fc6
Test kernels (version 1.2937) for this issue are at: http://people.redhat.com/cebbert Please test and report back.
This kernel also oopses, but not immediately when I press ctrl-c like it the earlier kernels. The oops usually comes a few seconds later. I get more varied oops messages, but they usually have this call trace: Call Trace: <IRQ> [<ffffffff80295c95>] __rcu_process_callbacks+0x12d/0x1bc [<ffffffff80295d47>] rcu_process_callbacks+0x23/0x43 [<ffffffff8028c3fc>] tasklet_action+0x53/0x9d [<ffffffff8025b23c>] call_softirq+0x1c/0x28 [<ffffffff80211fc0>] __do_softirq+0x55/0xc3 [<ffffffff8025b23c>] call_softirq+0x1c/0x28 <EOI> [<ffffffff8028c2ea>] ksoftirqd+0x0/0xbf [<ffffffff802684d2>] do_softirq+0x2c/0x85 [<ffffffff8028c349>] ksoftirqd+0x5f/0xbf [<ffffffff80231852>] kthread+0xd0/0xff [<ffffffff8025aec8>] child_rip+0xa/0x12 [<ffffffff80231782>] kthread+0x0/0xff [<ffffffff8025aebe>] child_rip+0x0/0x12 Just tell me if you want a few complete oops messages.
Yes, we need the full oops messages.
Created attachment 150956 [details] Five oops messages in .tar.gz.
Created attachment 150959 [details] five oops messages as plain text
Magnus, kernel 2962 has a new utrace update. Can you test it?
The problem seems to be fixed in 2962, I can not reproduce the oops. I also tried kernel-2.6.21-1.3228.fc7.x86_64, but I can still reproduce the oops with that kernel.
I just applied the same fixes to the F7 kernel, so it should be OK in the next release.