2006年11月19日

[fol] Re: NFS fcntl(F_SETLK) problem (Linux->MacOSX)

 しらいです。

 昔は「NFS では lock が効かない」は常識だったので隔世の感が。

In article <YAS.06Sep18155520@xxxxx>,
Yasushi Shinjo <yas@xxxxx> wrote:
>新城@筑波大学情報です。こんにちは。

>ロックの問題ですが、具体的な症状としては、ファイルをロックし
>ようとすると固まってしまうということです。クライアントは、
>Linux、サーバは、MacOSX です。

 Linux の NFS は実装が不完全なことで有名ですが、特に lockd
は上手く働かないことが多いようです。
 相手が同じ Linux kernel で同じ architecture だと割と安定し
てますが、それでも失敗する時には失敗するので、こと Linux に
関しては昔の fcntl() の常識を適用すべきかと。

 因みに、経験則から言うと、deadlock する時には「client 数が
多過ぎ」とか何とか吐いてた気がするので、unlock されるのを待
っている client が多いと何かまずいのかも。


>情報ありがとうございます。flock() は固まらないだけで、ロック
>としては働いていないということかもしれませんね。
>fcntl(F_SETLK) に問題があるからといってねflock() で代替する
>というのは、危ないですね。

 glibc を使う限りは lockf() も fcntl() を使って lock 機構を
実装しているように見えるので、lockf() に逃げるという解もあり
ません。
 flock() に関しては、Linux kernel 2.x 以降では独立の system
call なので、man page のとおり「NFS で使えない別の lock 機構」
ですが、kernel 1.x だと fcntl() を使うので同じ機構ですね。

--
しらい たかし

投稿者 xml-rpc : 2006年11月19日 06:05
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/49614
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。