Що означає "відсутні блоки"?


9

Я намагаюся взяти участь у сервері SVN. На сервері сховище субверсії встановлено 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.


1
"ps aux | grep lockd" на сервері має вихід, тому я думаю, що він працює
Rory

Це було пов'язано з сервером NFS.
Франциско

Моя справа була №3. Працівниками Державтоінспекції зафіксовано /sbin/service nfslock startв CentOS 6.8 ( . Посилання: 18.1.1 Необхідні послуги
Joao cenoura

3

Переконайтесь, що ваш сервер NFS підтримує блокування; Вам може знадобитися включити додаткові процеси на сервері NFS для цього; див. rpc.lockd (8) та rpc.statd (8) .

Крім того, якщо ваш сервер NFS нещодавно перезапустився, у вас може бути усталене або навіть частково застаріле кріплення NFS. Спробуйте також демонтувати та перемонтувати кріплення NFS.

EDIT: виходячи з вашого іншого питання , схоже, що блокування не почалося після того, як ваш сервер NFS відновився після його аварії.


Він працював, поки сервер nfs не вийшов з ладу. останнім часом не було оновлених програм. Я розширив питання
Рорі

Ваше кріплення NFS може бути (частково) несвіжим; тут відбувається з сервером NFS на базі FreeBSD та клієнтами Solaris. Вивчення / повторне перерахування частки NFS вирішує проблему перед нами.
Тел Янін

1
перезапуск клієнта, який мав NFS, не виправив. (Хоча є й інші машини, які монтуються з того сервера NFS, який я не перезапускав / перераховував)
Rory

1

Існує ряд альтернатив, згаданих у цьому пошуку Google для термінів, які ви згадали вище .

Деякі з згаданих варіантів: повні диски, проблеми з дозволами, "висіли" або "застрягли" svnserve процеси та вивішені транзакції ... Можливо, вам доведеться спробувати декілька цих різних проблем, щоб побачити, яка саме проблема у вашій справа.

Це здається, що ви використовуєте бсддб SVN бек-енд? Ви можете спробувати перенести сховище до бек-файлу fsfs (за замовчуванням вже кілька років). З мого досвіду та з багатьох інших, яких я знаю, він виявився більш надійним, ніж bsddb. Хоча ви хочете дослідити, як він взаємодіє з NFS - я не використовував його на NFS.

Інший варіант, який ви можете розглянути, - це відмовитися від використання SVN через NFS і замість цього запустити його через SSH на сервері з локальним сховищем SVN. Ось так ми виконуємо всю нашу роботу з SVN, використовуючи fsfs backkend, і я не можу згадати, коли востаннє у нас були проблеми з сховищем SVN.

Шон


ми використовуємо задній край FSFS
Rory,

+1 для повних дисків! Виявляється, хоча кріплення NFS не було повним, кореневий диск був ...
hwjp

0

якщо ви використовуєте SVN з NFS на debian

запустіть це:

/etc/init.d/portmap restart

1
Це може бути корисно пояснити, чому ви пропонуєте це як свою відповідь.
Дрю Хоурі

0

У мене виникли подібні проблеми, мої через кріплення NFS бродячого. Ідучи від сказаного вище Теля Яніна, я перезапустив rpcbind sudo service rpcbind restartна своїй хост-OS. Це повісило мою вм. Я перезапустив це, що призвело до явної помилки NFS failed to start with result 'dependency'. Це все-таки спрацювало, і я зараз щасливий кемпер.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.