Apa yang dimaksud dengan 'tidak ada kunci tersedia'?


9

Saya mencoba berkomitmen ke server SVN. Di server repositori subversi dipasang NFS. Saat melakukan komit, saya mendapatkan pesan kesalahan ini:

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

Ini digunakan untuk bekerja, dan belum ada peningkatan / perubahan perangkat lunak pada apa pun. Namun server NFS memang crash sebelumnya, jadi mungkin 'rusak' (jika itu berlaku di sini)

Jawaban:


12

Ada beberapa kemungkinan di sini:

  1. Akun pengguna yang melakukan pembaruan SVN mungkin tidak memiliki izin pembaruan pada direktori repositori
  2. Sistem file NFS tempat repositori disimpan mungkin penuh
  3. Daemon kunci (lockd) mungkin tidak berjalan di server NFS.

UPDATE: mengikuti pembaruan untuk pertanyaan, saya menduga # 3. Pastikan bahwa lockd diatur untuk memulai ketika server NFS di-reboot.


1
"ps aux | grep lockd" di server memiliki output, jadi saya pikir itu sedang berjalan
Rory

Itu terkait dengan server NFS.
Francisco

Kasus saya adalah # 3. Diperbaiki oleh /sbin/service nfslock startdalam CentOS 6.8 ( referensi: 18.1.1. Layanan yang Dibutuhkan
joao cenoura

3

Pastikan server NFS Anda mendukung kunci; Anda mungkin perlu mengaktifkan proses tambahan pada server NFS untuk mencapai ini; lihat rpc.lockd (8) dan rpc.statd (8) .

Selain itu, jika server NFS Anda telah restart baru-baru ini, Anda mungkin memiliki NFS basi atau bahkan basi sebagian. Coba unmount dan remount mount NFS juga.

EDIT: berdasarkan pertanyaan Anda yang lain , sepertinya lockd tidak memulai setelah server NFS Anda pulih dari kerusakan itu.


Dulu bekerja, sampai server nfs crash. belum ada pembaruan perangkat lunak baru-baru ini. Saya telah memperluas pertanyaan
Rory

Mount NFS Anda mungkin (sebagian) basi; terjadi di sini dengan server NFS berbasis FreeBSD dan klien Solaris. Menjumlahkan / memasang kembali bagian NFS memperbaiki masalah bagi kami.
Tel Janin

1
memulai ulang klien yang memiliki NFS mount tidak memperbaikinya. (Meskipun ada mesin lain yang dipasang dari server NFS yang saya belum restart / remount)
Rory

1

Ada sejumlah alternatif yang disebutkan dalam pencarian google ini untuk istilah yang Anda sebutkan di atas .

Beberapa opsi yang disebutkan adalah: cakram penuh, masalah izin, proses proses "macet" atau "macet", dan transaksi macet ... Anda mungkin perlu mencoba sejumlah masalah berbeda ini untuk melihat apa sebenarnya masalahnya di kasus.

Kedengarannya seperti Anda menggunakan bsddb SVN back-end? Anda mungkin ingin mencoba memigrasi repositori Anda ke back-end fsfs (default untuk beberapa tahun sekarang). Dalam pengalaman saya dan dari sejumlah orang lain yang saya kenal, terbukti lebih dapat diandalkan daripada bsddb. Meskipun Anda ingin meneliti bagaimana cara berinteraksi dengan NFS - saya belum menggunakannya pada NFS.

Opsi lain yang mungkin ingin Anda pertimbangkan adalah beralih dari menggunakan SVN melalui NFS dan alih-alih menjalankannya di SSH pada server dengan repositori SVN yang disimpan secara lokal. Ini adalah bagaimana kami melakukan semua pekerjaan SVN kami, dengan backend fsfs, dan saya tidak ingat kapan terakhir kali kami memiliki masalah repositori SVN.

Sean


kami menggunakan back end FSFS
Rory

+1 untuk disk lengkap! ternyata meskipun NFS mount tidak penuh, root drive itu ...
hwjp

0

jika Anda menggunakan SVN dengan NFS di debian

jalankan ini:

/etc/init.d/portmap restart

1
Akan sangat membantu untuk menjelaskan mengapa Anda menyarankan ini sebagai jawaban Anda.
Drew Khoury

0

Saya punya masalah serupa di sini, milik saya karena NFS mount gelandangan. Beranjak dari apa yang dikatakan Tel Janin di atas, saya memulai kembali rpcbind dengan sudo service rpcbind restartOS host saya. Ini menggantung vm saya. Saya memulai kembali itu, yang memberi saya kesalahan NFS samar failed to start with result 'dependency'. Tapi itu berhasil dan saya sekarang senang berkemah.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.