Node:CVS dice que está esperando un cerrojo; ¿qué significa esto?, Next:CVS dice que un fichero ha fallado la comprobación Up-To-Date (actualizado); ¿qué hago?, Up:Algunos Problemas de la Vida Real (con Soluciones)
Si vemos un mensaje como este:
cvs update: [22:58:26] waiting for qsmith's lock in /usr/local/newrepos/myproj
significa que estamos intentando acceder a un subdirectorio del repositorio que está bloqueado por otro proceso CVS en este momento. Un proceso está corriendo en ese subdirectorio, luego puede hacerlo inconsistente a otros procesos CVS que quieran acceder a él.
Sin embargo, si el mensaje de espera persiste mucho tiempo, probablemente indique que un proceso CVS ha fallado en su limpieza final, por alguna razón. Puede pasar cuando CVS muere de pronto e inesperadamente, por una caída de la máquina del repositorio, por ejemplo.
La solución es borrar los ficheros de cerrojo a mano del subdirectorio
del repositorio en cuestión. Entremos en ese lugar y busquemos ficheros
con el nombre #cvs.lock
o que empiecen por #cvs.wfl
o
#cvs.rfl
. Comparemos las fechas de los ficheros con los instantes
de inicio de cualquier proceso CVS actual. Si los ficheros no han podido
ser creados por esos procesos (son más antiguos), podemos borrarlos
tranquilamente. Los procesos CVS en espera se darán cuenta del borrado
(normalmente cada 30 segundos lo revisan) y terminarán su operación.
Véase el nodo Locks en el manual de Cederqvist para más detalle.