Translated message

A translation of this page exists in English.

RHEL6 において、2.6.32-279.19.1 では発生しなかった NFSv4 flock が 2.6.32-279.22.1 または 2.6.32-358.el6 で発生し Lock reclaim failed! エラーが表示される

Solution Verified - Updated -

Issue

  • nfsv4: flock() が、エラーで失敗せずハングアップになります。
  • NFS4 で、前のバージョンでは発生していなかった、ログインとファイルのロック時のエラーが発生します。
  • ホームディレクトリが NFS にマウントされています。最新のカーネルでは、グラフィカルセッションにログインすると、1 秒内にカーネルメッセージ "nfs4_reclaim_open_state: Lock reclaim failed!" が多数ログに記録されます。これにより、システムログファイルが大きくなりすぎるため、root のファイルシステムが 1 日 2 日でいっぱいになるという重大な問題が発生しています。
  • 2.6.32-279.22.1 カーネルを実行しているクライアントで、ファイルロック (flock) 問題のようなものが nfsv4 で発生しています。以下は、pidgin を実行した場合の例ですが、この問題はその他の方法でも発生します。
===============
$ strace pidgin
...
stat("foo", {st_mode=S_IFREG|0600, st_size=0, ...})= 0
open("foo", O_RDONLY) = 14
flock(14, LOCK_EX
===============
And it just hangs there waiting for the lock.
  • 以前の 2.6.32-279.19.1 カーネルでクライアントを起動すると問題が修正されます。
  • flock() はハングアップしていますが、メッセージファイルには「多量の」カーネルエラーが表示されます。そのタイムスタンプはほぼ変わらず (1 秒内)、タイトなループが発生していることが分かります。
kernel: nfs4_reclaim_open_state:Lock reclaim failed!
kernel: message repeated 210204 times:[nfs4_reclaim_open_state:Lock reclaim failed!]
  • 失敗時に tcpdump を取得すると、LOCK 要求が繰り返し発生し、すべて (10038 == NFS4ERR_OPENMODE) で失敗し、そのタイムスタンプはほぼ同じ (1 秒内) であることが分かります。
1 2013-03-01 09:18:56.208360 192.168.122.131 -> 192.168.122.121 NFS V4 COMP Call LOCK
  2 2013-03-01 09:18:56.209034 192.168.122.121 -> 192.168.122.131 NFS V4 COMP Reply (Call In 1) LOCK(10038)
  3 2013-03-01 09:18:56.209421 192.168.122.131 -> 192.168.122.121 NFS V4 COMP Call SAVEFH OPEN DELEGRETURN Unknown
  4 2013-03-01 09:18:56.210049 192.168.122.121 -> 192.168.122.131 NFS V4 COMP Reply (Call In 3) SAVEFH OPEN[Malformed Packet]
  5 2013-03-01 09:18:56.210319 192.168.122.131 -> 192.168.122.121 NFS V4 COMP Call LOCK
  6 2013-03-01 09:18:56.211024 192.168.122.121 -> 192.168.122.131 NFS V4 COMP Reply (Call In 5) LOCK(10038)
  7 2013-03-01 09:18:56.215670 192.168.122.131 -> 192.168.122.121 NFS V4 COMP Call SAVEFH OPEN DELEGRETURN Unknown
  8 2013-03-01 09:18:56.216375 192.168.122.121 -> 192.168.122.131 NFS V4 COMP Reply (Call In 7) SAVEFH OPEN[Malformed Packet]
  9 2013-03-01 09:18:56.216596 192.168.122.131 -> 192.168.122.121 NFS V4 COMP Call LOCK
 10 2013-03-01 09:18:56.217332 192.168.122.121 -> 192.168.122.131 NFS V4 COMP Reply (Call In 9) LOCK(10038)
 11 2013-03-01 09:18:56.217674 192.168.122.131 -> 192.168.122.121 NFS V4 COMP Call SAVEFH OPEN DELEGRETURN Unknown

Environment

  • Red Hat Enterprise Linux 6.3 ~ 6.4
    • カーネルのバージョンが 2.6.32-279.22.1 以降 2.6.32-279.25.1.el6 より前
    • カーネルのバージョンが 2.6.32-358.el6 以降 2.6.32-358.6.1.el6 より前
  • NFSv4 クライアント
  • 注意: Red Hat Enterprise Linux 5 (カーネル 2.6.18-348.el5 以降) はこの問題の影響を受けない
  • すべての NFS サーバー
  • ロック要求とは異なるオープンモードにおいて、NFS ファイルで flock を発行するアプリケーション

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