Я пытаюсь выполнить фиксацию на сервере 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. Убедитесь, что lockd настроен на запуск при перезагрузке сервера NFS.
Убедитесь, что ваш сервер NFS поддерживает блокировки; для этого вам может потребоваться включить дополнительные процессы на сервере NFS; видеть rpc.lockd (8) и rpc.statd (8).
Кроме того, если ваш NFS-сервер недавно перезагружался, у вас может быть устаревшее или даже частично устаревшее монтирование NFS. Попробуйте также размонтировать и снова смонтировать монтирование NFS.
РЕДАКТИРОВАТЬ: на основе вашего другой вопрос, похоже, lockd не запустился после того, как ваш сервер NFS восстановился после сбоя.
Есть ряд альтернатив, упомянутых в этот поиск Google по терминам, которые вы упомянули выше.
Некоторые из упомянутых вариантов: полные диски, проблемы с разрешениями, "зависшие" или "зависшие" процессы svnserve и зависшие транзакции ... Возможно, вам придется попробовать несколько из этих различных проблем, чтобы понять, в чем именно проблема заключается в вашем кейс.
Похоже, вы используете серверную часть SVN bsddb? Вы можете попробовать перенести свой репозиторий на серверную часть fsfs (используется по умолчанию уже несколько лет). По моему опыту и по опыту многих знакомых, он оказался более надежным, чем bsddb. Хотя вы захотите изучить, как он взаимодействует с NFS - я не использовал его в NFS.
Другой вариант, который вы можете рассмотреть, - отказаться от использования SVN поверх NFS и вместо этого запустить его через SSH на сервере с локально сохраненным репозиторием SVN. Именно так мы выполняем всю нашу работу с SVN с бэкэндом fsfs, и я не могу вспомнить, когда в последний раз у нас были проблемы с репозиторием SVN.
Шон
если вы используете SVN с NFS на debian
запустите это:
/etc/init.d/portmap restart
У меня были аналогичные проблемы здесь, мои из-за монтирования NFS vagrant. Исходя из того, что сказал Тель Джанин выше, я перезапустил rpcbind с sudo service rpcbind restart
на моей хост-ОС. Это повесило мой vm. Я перезапустил это, что дало мне загадочную ошибку NFS failed to start with result 'dependency'
. Тем не менее, это сработало, и теперь я счастливый турист.