SVNサーバーにコミットしようとしています。サーバーでは、SubversionリポジトリがNFSマウントされています。コミットを実行すると、次のエラーメッセージが表示されます。
svn: Can't get exclusive lock on file '/svn/repo/db/transactions/7802-2.txn/rev-lock': No locks available
これは以前は機能し、ソフトウェアのアップグレードや変更は何もありませんでした。ただし、NFSサーバーは以前にクラッシュしたため、「破損」している可能性があります(ここでも該当する場合)。
ここにはいくつかの可能性があります:
更新:質問の更新に続いて、私は#3を疑います。 NFSサーバーの再起動時にlockdが起動するように設定されていることを確認してください。
NFSサーバーがロックをサポートしていることを確認してください。これを行うには、NFSサーバーで追加のプロセスを有効にする必要がある場合があります。 rpc.lockd(8) および rpc.statd(8) を参照してください。
さらに、NFSサーバーが最近再起動した場合は、古い、または部分的に古いNFSマウントがある可能性があります。 NFSマウントのアンマウントと再マウントも試してください。
編集: 他の質問 に基づいて、NFSサーバーがクラッシュから回復した後、lockdが起動しなかったようです。
上記で言及した用語のこのGoogle検索 で言及されている代替案がいくつかあります。
言及されているオプションのいくつかは次のとおりです:完全なディスク、権限の問題、「ハング」または「スタック」svnserveプロセス、およびハングトランザクション...これらのさまざまな問題をいくつか試し、問題の正確な内容を確認する必要がある場合があります。場合。
Bsddb SVNバックエンドを使用しているようですね?リポジトリをfsfsバックエンドに移行することをお勧めします(現在数年間のデフォルト)。私の経験や他の多くの経験から、bsddbよりも信頼性が高いことが証明されています。あなたはそれがNFSとどのように相互作用するかを研究したいと思うでしょう-私はNFSでそれを使用していません。
考慮すべきもう1つのオプションは、SVNをNFS経由で使用せずに、SVNリポジトリがローカルに保存されているサーバー上でSSH経由で実行することです。これは、fsfsバックエンドを使用してすべてのSVN作業を行う方法であり、SVNリポジトリの問題が最後に発生したのを思い出せません。
ショーン
debianでNFSでSVNを使用している場合
これを実行してください:
/etc/init.d/portmap restart
私はここで同様の問題を抱えていました、私はvagrantのNFSマウントが原因です。上記のTel Janinの発言から、ホストOSでSudo service rpcbind restart
を使用してrpcbindを再起動しました。これで私のVMがハングしました。再起動すると、不可解なNFSエラーfailed to start with result 'dependency'
が発生しました。それはうまくいきました、そして私は今幸せなキャンピングカーです。