All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jay Lan <jlan@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: [BUG] running strace utility can cause system to hang at sys_ptrace
Date: Thu, 13 Jul 2006 17:58:17 +0000	[thread overview]
Message-ID: <44B689B9.3090902@sgi.com> (raw)

We ran into a system hang problem at sys_ptrace.

The system may hang if a user attempts to "strace" a pthreaded
application that is making frequent calls to pthread_create &
pthread_exit.
The hang is caused by a task sleeping (yield()) while holding the
tasklist_lock.

Note that the problem appears to exist ONLY on IA64. IA64 has an
ARCH-specific implementation of sys_ptrace().

The failing path is:

          sys_ptrace
            read_lock(&tasklist_lock);
               find_thread_for_addr(child, addr);
                 thread_matches(p, addr)
                   ptrace_check_attach(thread, 0)
                     wait_task_inactive(child);
                       yield();

Failures always show 1 task sleeping with the backtrace listed
above, plus tasks on all cpus spinning waiting to write_lock the
tasklist lock.

Sleeping
   Stack traceback for pid 31069
   0xe00000343b800000    31069    0    3   R  0xe00000343b8003a0 strace
   0xa000000100981c60 schedule+0x2460
   0xa00000010007d4d0 sys_sched_yield+0x110
   0xa000000100982120 yield+0x40
   0xa000000100082f10 wait_task_inactive+0x170
   0xa0000001000a2570 ptrace_check_attach+0x1d0
   0xa00000010002e9b0 sys_ptrace+0x1f0
   0xa00000010000c900 ia64_ret_from_syscall

CPU 0
   0xe00000343b5f0000     4973    0    3   C  0xe00000343b5f03a0  thdcrex
   0xa00000010000caa0 ia64_leave_kernel
   0xa00000010053d0a0 _raw_write_lock+0x120
   0xa0000001009854d0 _write_lock_irq+0x30
   0xa000000100093a00 do_exit+0xae0
   0xa000000100094560 sys_exit+0x20
   0xa00000010000c900 ia64_ret_from_syscall

CPU 1
   0xe000003038880000     4972    0    1   R  0xe0000030388803a0  thdcrex
   0xa00000010000caa0 ia64_leave_kernel
   0xa00000010053d0a0 _raw_write_lock+0x120
   0xa0000001009854d0 _write_lock_irq+0x30
   0xa0000001000880e0 copy_process+0x1f80
   0xa000000100088e30 do_fork+0x150
   0xa00000010000c160 sys_clone2+0x60
   0xa00000010000c900 ia64_ret_from_syscall


Regards,
  - jay

             reply	other threads:[~2006-07-13 17:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-13 17:58 Jay Lan [this message]
2006-07-13 18:24 ` [BUG] running strace utility can cause system to hang at sys_ptrace Jay Lan
2006-07-13 18:45 ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44B689B9.3090902@sgi.com \
    --to=jlan@sgi.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.