Node: CVS says it is waiting for a lock; what does that mean?, Next: , Up: Some Real Life Problems (With Solutions)



CVS says it is waiting for a lock; what does that mean?

CVS が「ロック待ち中」って言うんですが、どういう意味?

このようなメッセージを見たら

     cvs update: [22:58:26] waiting for qsmith's lock in /usr/local/newrepos/myproj
     

これは、その時点でほかの CVS プロセスにロックされているリポジトリ中 のサブディレクトリをアクセスしようとしている、という意味です。そのディ レクトリ内でプロセスが実行中なので、他の CVS プロセスが使うには一貫 性のない状態になっているかもよ、ということです。

しかし、そのメッセージが長い間出ているようなら、何らかの理由で CVS プロセスが後始末しないで失敗に終わってしまったことを示します。CVS が 突然、予期しないでお亡くなりになった時、たとえばリポジトリのあるマシン の電源が落ちたとか、そういう時に起こり得ます。

解決法は、問題のリポジトリサブディレクトリから、手でロックファイルを 取り除くことです。リポジトリの該当部分に移って、#cvs.lock と いう名前か、#cvs.wfl#cvs.rfl で始まる名前のファイ ルを探してください。ファイルのタイムスタンプを今実行中の CVS プロセ スの起動時刻と比較してください。ファイルがそれらのプロセスに生成され たのでないようならば、それを削除しても安全です。待機中の CVS プロセ スはロックファイルがなくなったと告げて(30秒ほどかかります)、要求され たオペレーションを続行できるようになります。

詳しくは Cederqvist マニュアルの Locks ノードを参照してくださ い。