Node:CVS dice que está esperando un cerrojo; ¿qué significa esto?, Next:, Up:Algunos Problemas de la Vida Real (con Soluciones)



CVS dice que está esperando un cerrojo; ¿qué significa esto?

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.