「使用可能なロックがない」とはどういう意味ですか?


9

SVNサーバーにコミットしようとしています。サーバーでは、subversionリポジトリはNFSマウントされています。コミットを実行すると、次のエラーメッセージが表示されます。

svn: Can't get exclusive lock on file '/svn/repo/db/transactions/7802-2.txn/rev-lock': No locks available

これは以前は機能し、ソフトウェアのアップグレードや変更は何もありませんでした。ただし、NFSサーバーは以前にクラッシュしたため、「破損」している可能性があります(ここでも該当する場合)。

回答:


12

ここにはいくつかの可能性があります:

  1. SVN更新を実行しているユーザーアカウントに、リポジトリディレクトリに対する更新権限がない可能性があります
  2. リポジトリが格納されているNFSファイルシステムがいっぱいである可能性があります
  3. ロックデーモン(lockd)がNFSサーバーで実行されていない可能性があります。

更新:質問の更新に続いて、私は#3を疑います。NFSサーバーの再起動時に起動するようにlockdが設定されていることを確認してください。


1
サーバー上の "ps aux | grep lockd"が出力しているので、実行されていると思います
Rory

これはNFSサーバーに関連していました。
サンフランシスコ、

私のケースは#3でした。/sbin/service nfslock startCentOS 6.8で修正(参照:18.1.1。必要なサービス
joao cenoura 2017

3

NFSサーバーがロックをサポートしていることを確認してください。これを行うには、NFSサーバーで追加のプロセスを有効にする必要がある場合があります。rpc.lockd(8)およびrpc.statd(8)を参照してください。

さらに、NFSサーバーが最近再起動した場合、古い、または部分的に古いNFSマウントがある可能性があります。NFSマウントのアンマウントと再マウントも試してください。

編集:他の質問に基づいて、NFSサーバーがクラッシュから回復した後、lockdが起動しなかったようです。


これは、nfsサーバーがクラッシュするまで機能していました。最近ソフトウェアの更新はありません。私は質問を拡大しました
Rory

NFSマウントが(部分的に)古くなっている可能性があります。FreeBSDベースのNFSサーバーとSolarisクライアントでここで発生します。NFS共有をアンマウント/再マウントすると、問題が修正されます。
電話JANIN

1
NFSマウントされたクライアントを再起動しても修正されませんでした。(私が再起動/再マウントしていないそのNFSサーバーからマウントしている他のマシンがありますが)
Rory

1

このGoogle検索では、上記で言及した用語の代替案がいくつかあります

言及されているオプションのいくつかは次のとおりです:完全なディスク、アクセス許可の問題、「ハング」または「スタック」svnserveプロセス、およびハングトランザクション...これらのさまざまな問題をいくつか試して、問題の正確な内容を確認する必要がある場合があります。場合。

bsddb SVNバックエンドを使用しているようですね?リポジトリをfsfsバックエンドに移行することをお勧めします(現在数年間のデフォルト)。私の経験や他の多くの経験から、bsddbよりも信頼性が高いことが証明されています。あなたはそれがNFSとどのように相互作用するかを研究したいと思うでしょう-私はNFSでそれを使用していません。

考慮すべきもう1つのオプションは、NFSを介したSVNの使用から移行し、SVNリポジトリがローカルに保存されているサーバー上でSSHを介して実行することです。これは、fsfsバックエンドを使用してすべてのSVN作業を行う方法であり、SVNリポジトリの問題が最後に発生したのを思い出せません。

ショーン


FSFSバックエンドを使用しています
Rory

フルディスクの場合は+1!NFSマウントがいっぱいではなかったが判明、ルートドライブは...だった
hwjp

0

debianでNFSでSVNを使用している場合

これを実行してください:

/etc/init.d/portmap restart

1
これを回答として提案する理由を説明すると役立ちます。
Drew Khoury 2013

0

私はここで同様の問題を抱えていました、私はvagrantのNFSマウントが原因です。上記のTel Janinの発言からsudo service rpcbind restart、ホストOSでrpcbindを再起動しました。これで私のVMがハングしました。再起動すると、不可解なNFSエラーが発生しましたfailed to start with result 'dependency'。それはうまくいきました、そして私は今幸せなキャンピングカーです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.