Translated message

A translation of this page exists in English.

升级到 RHEL 6.6、7.0 或 7.1 可能导致使用 futexes 的应用程序在 futex_wait ()中出现停滞。

Solution In Progress - Updated -

Issue

  • 带有 pThreads 的软锁定,Haswell CPU 和 PowerPC CPU 上的 Mutex (但可能不仅限于这些)
  • 升级到 Red Hat Enterprise Linux 6.6 (特别是到 2.6.32-504 ,并包括 2.6.32-504.12.2)可能导致应用程序挂起。
  • 无法使用 kill -3 得到线程转储。
  • 运行 kill -3 没有响应。
  • 检查 /proc/ 显示所有线程都卡在等待 futex。例如:
Where nnnn = the PID # of the parent task in question
             mmmm = the PID # of the thread task
             Note. Under the parent /proc/nnnn/task structure you will see the PID's of all of the threads including the parents number repeated.

cat /proc/nnnn/task/mmmm/stack
[<ffffffff810b226a>] futex_wait_queue_me+0xba/0xf0
[<ffffffff810b33a0>] futex_wait+0x1c0/0x310
[<ffffffff810b4c91>] do_futex+0x121/0xae0
[<ffffffff810b56cb>] sys_futex+0x7b/0x170
[<ffffffff8100b072>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
  • 附加 gdbstrace 导致应用程序唤醒并继续处理。

Environment

  • Red Hat Enterprise Linux (RHEL) 6.6, 7.0 和 7.1
  • 应用程序使用带有私有用户空间 futex 锁定的 syscall FUTEX

    • 不会影响共享的或 Inode Futex 锁定
  • 其他可能的软件包可能包括:

    • IBM JDK 6 32-bit
    • Oracle JDK 7 64-bit

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content