¿Qué significa "sin cerraduras disponibles"?


9

Estoy tratando de comprometerme con un servidor SVN. En el servidor, el repositorio de subversión está montado en NFS. Al hacer una confirmación, recibo este mensaje de error:

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

Esto solía funcionar, y no ha habido actualizaciones / cambios de software en nada. Sin embargo, el servidor NFS se bloqueó antes, por lo que podría estar 'dañado' (si eso es aplicable aquí)

Respuestas:


12

Hay algunas posibilidades aquí:

  1. Es posible que la cuenta de usuario que está realizando la actualización de SVN no tenga permiso de actualización en el directorio del repositorio
  2. El sistema de archivos NFS donde se almacena el repositorio puede estar lleno
  3. Es posible que el demonio de bloqueo (lockd) no se esté ejecutando en el servidor NFS.

ACTUALIZACIÓN: después de la actualización de la pregunta, sospecharía # 3. Asegúrese de que lockd esté configurado para iniciarse cuando se reinicie el servidor NFS.


1
"ps aux | grep lockd" en el servidor ha salido, así que creo que se está ejecutando
Rory

Estaba relacionado con el servidor NFS.
Francisco

Mi caso fue el # 3. Solucionado /sbin/service nfslock starten CentOS 6.8 ( referencia: 18.1.1. Servicios necesarios
joao cenoura

3

Asegúrese de que su servidor NFS admite bloqueos; es posible que deba habilitar procesos adicionales en el servidor NFS para lograr esto; ver rpc.lockd (8) y rpc.statd (8) .

Además, si su servidor NFS se ha reiniciado recientemente, puede tener un montaje NFS obsoleto o incluso parcialmente obsoleto. Intente desmontar y volver a montar el soporte NFS también.

EDITAR: según su otra pregunta , parece que lockd no se inició después de que su servidor NFS se recuperó de su bloqueo.


Solía ​​funcionar, hasta que el servidor nfs fallaba. No ha habido actualizaciones de software recientemente. He ampliado la pregunta
Rory

Su montaje NFS puede estar (parcialmente) obsoleto; sucede aquí con un servidor NFS basado en FreeBSD y clientes Solaris. Desmontar / volver a montar el recurso compartido NFS nos soluciona el problema.
Tel Janin

1
reiniciar el cliente que tenía el montaje NFS no lo solucionó. (Aunque hay otras máquinas que se montan desde ese servidor NFS que no he reiniciado / montado)
Rory

1

Hay una serie de alternativas mencionadas en esta búsqueda en Google de los términos que mencionó anteriormente .

Algunas de las opciones mencionadas son: discos completos, problemas de permisos, procesos de svnserve "bloqueados" o "bloqueados" y transacciones bloqueadas ... Es posible que deba probar varios de estos diferentes problemas para ver cuál es exactamente el problema en su caso.

¿Parece que está utilizando el back-end bsddb SVN? Es posible que desee intentar migrar su repositorio al back-end fsfs (el valor predeterminado desde hace varios años). Según mi experiencia y la de muchos otros que conozco, ha demostrado ser más confiable que bsddb. Aunque querrás investigar cómo interactúa con NFS, no lo he usado en NFS.

Otra opción que puede considerar es alejarse del uso de SVN sobre NFS y, en su lugar, ejecutarlo sobre SSH en un servidor con el repositorio SVN almacenado localmente. Así es como hacemos todo nuestro trabajo SVN, con el backend fsfs, y no recuerdo la última vez que tuvimos problemas con el repositorio SVN.

Sean


estamos usando FSFS back end
Rory

+1 para discos completos! Resulta que aunque el montaje NFS no estaba lleno, la unidad raíz era ...
hwjp

0

si usa SVN con NFS en debian

ejecuta esto:

/etc/init.d/portmap restart

1
Puede ser útil explicar por qué sugiere esto como su respuesta.
Drew Khoury

0

Tuve problemas similares aquí, los míos debido a los montajes NFS del vagabundo. A partir de lo que Tel Janin dijo anteriormente, reinicié rpcbind con sudo service rpcbind restarten mi sistema operativo host. Esto colgó mi vm. Reinicié eso, lo que me dio un error críptico de NFS failed to start with result 'dependency'. Sin embargo, funcionó y ahora soy una campista feliz.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.