"Không có khóa có sẵn" nghĩa là gì?


9

Tôi đang cố gắng cam kết với một máy chủ SVN. Trên máy chủ, kho lưu trữ subversion được gắn kết NFS. Khi thực hiện một cam kết, tôi nhận được thông báo lỗi này:

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

Điều này được sử dụng để làm việc, và không có nâng cấp / thay đổi phần mềm trên bất cứ điều gì. Tuy nhiên, máy chủ NFS đã bị sập trước đó, vì vậy nó có thể bị 'hỏng' (nếu điều đó thậm chí có thể áp dụng ở đây)

Câu trả lời:


12

Có một vài khả năng ở đây:

  1. Tài khoản người dùng đang thực hiện cập nhật SVN có thể không có quyền cập nhật trên thư mục kho lưu trữ
  2. Hệ thống tệp NFS nơi lưu trữ được lưu trữ có thể đầy
  3. Trình nền khóa (lockd) có thể không chạy trên máy chủ NFS.

CẬP NHẬT: sau khi cập nhật câu hỏi, tôi nghi ngờ # 3. Đảm bảo rằng lockd được thiết lập để bắt đầu khi máy chủ NFS được khởi động lại.


1
"ps aux | grep lockd" trên máy chủ có đầu ra, vì vậy tôi nghĩ nó đang chạy
Rory

Nó có liên quan đến máy chủ NFS.
Francisco

Trường hợp của tôi là # 3. Đã sửa /sbin/service nfslock starttrong CentOS 6.8 ( tham khảo: 18.1.1. Dịch vụ bắt buộc
joao cenoura

3

Đảm bảo rằng máy chủ NFS của bạn hỗ trợ khóa; bạn có thể cần kích hoạt các quy trình bổ sung trên máy chủ NFS để thực hiện việc này; xem rpc.lockd (8)rpc.statd (8) .

Ngoài ra, nếu máy chủ NFS của bạn đã khởi động lại gần đây, bạn có thể có một gắn kết NFS cũ hoặc một phần cũ. Hãy thử ngắt kết nối và kết nối lại NFS mount.

EDIT: dựa trên câu hỏi khác của bạn , có vẻ như lockd đã không bắt đầu sau khi máy chủ NFS của bạn phục hồi sau sự cố.


Nó được sử dụng để làm việc, cho đến khi máy chủ nfs bị sập. gần đây không có bản cập nhật phần mềm nào. Tôi đã mở rộng câu hỏi
Rory

Gắn kết NFS của bạn có thể cũ (một phần); xảy ra ở đây với máy chủ NFS dựa trên FreeBSD và máy khách Solaris. Umounting / remount chia sẻ NFS khắc phục vấn đề cho chúng tôi.
Tel Janin

1
khởi động lại máy khách có NFS mount không khắc phục được. (Mặc dù có những máy khác đang được cài đặt từ máy chủ NFS mà tôi chưa khởi động lại / kết nối lại)
Rory

1

Có một số lựa chọn thay thế được đề cập trong tìm kiếm google này cho các thuật ngữ bạn đã đề cập ở trên .

Một số tùy chọn được đề cập là: đĩa đầy đủ, sự cố về quyền, quy trình svnserve "bị treo" hoặc "bị kẹt" và giao dịch bị treo ... Bạn có thể cần thử một số vấn đề khác nhau này để biết chính xác vấn đề là gì trường hợp

Có vẻ như bạn đang sử dụng back-end Ss bsddb? Bạn có thể muốn thử di chuyển kho lưu trữ của mình sang back-end fsfs (mặc định trong vài năm nay). Theo kinh nghiệm của tôi và từ một số người khác mà tôi biết, nó đã được chứng minh là đáng tin cậy hơn bsddb. Mặc dù bạn sẽ muốn nghiên cứu cách nó tương tác với NFS - Tôi chưa sử dụng nó trên NFS.

Một tùy chọn khác mà bạn có thể muốn xem xét là chuyển sang sử dụng SVN qua NFS và thay vào đó chạy nó qua SSH trên máy chủ có kho lưu trữ SVN được lưu trữ cục bộ. Đây là cách chúng tôi thực hiện tất cả công việc SVN của mình, với phụ trợ fsfs và tôi không thể nhớ lần cuối cùng chúng tôi gặp sự cố về kho lưu trữ SVN.

Sean


chúng tôi đang sử dụng back end của FSFS
Rory

+1 cho đĩa đầy đủ! Hóa ra mặc dù ngàm NFS không đầy, ổ đĩa gốc là ...
hwjp

0

nếu bạn sử dụng SVN với NFS trên debian

chạy cái này:

/etc/init.d/portmap restart

1
Nó có thể hữu ích để giải thích lý do tại sao bạn đề nghị đây là câu trả lời của bạn.
Drew Khoury

0

Tôi đã có vấn đề tương tự ở đây, của tôi do gắn kết NFS của vagrant. Đi từ những gì Tel Janin đã nói ở trên, tôi đã khởi động lại rpcbind với sudo service rpcbind restarthệ điều hành máy chủ của mình. Cái này treo vm của tôi. Tôi đã khởi động lại, điều đó mang lại cho tôi một lỗi NFS khó hiểu failed to start with result 'dependency'. Nó đã làm việc mặc dù và bây giờ tôi là một người cắm trại hạnh phúc.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.