Que signifie «aucun verrou disponible»?


9

J'essaie de m'engager sur un serveur SVN. Sur le serveur, le référentiel subversion est monté en NFS. Lors d'une validation, j'obtiens ce message d'erreur:

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

Cela fonctionnait, et il n'y a eu aucune mise à niveau / changement de logiciel sur quoi que ce soit. Cependant, le serveur NFS est tombé en panne plus tôt, il pourrait donc être «corrompu» (si cela s'applique même ici)

Réponses:


12

Il y a quelques possibilités ici:

  1. Le compte d'utilisateur qui effectue la mise à jour SVN peut ne pas avoir l'autorisation de mise à jour sur le répertoire du référentiel
  2. Le système de fichiers NFS où le référentiel est stocké peut être plein
  3. Le démon de verrouillage (lockd) n'est peut-être pas en cours d'exécution sur le serveur NFS.

MISE À JOUR: après la mise à jour de la question, je soupçonne # 3. Assurez-vous que lockd est configuré pour démarrer lorsque le serveur NFS est redémarré.


1
"ps aux | grep lockd" sur le serveur a une sortie, donc je pense qu'il fonctionne
Rory

Il était lié au serveur NFS.
Francisco

Mon cas était le n ° 3. Fixé par /sbin/service nfslock startdans CentOS 6.8 ( référence: 18.1.1. Services requis
joao cenoura

3

Assurez-vous que votre serveur NFS prend en charge les verrous; vous devrez peut-être activer des processus supplémentaires sur le serveur NFS pour ce faire; voir rpc.lockd (8) et rpc.statd (8) .

En outre, si votre serveur NFS a redémarré récemment, vous pouvez avoir un montage NFS périmé ou même partiellement périmé. Essayez également de démonter et de remonter le support NFS.

EDIT: sur la base de votre autre question , il semble que lockd n'a pas démarré après que votre serveur NFS a récupéré de son crash.


Cela fonctionnait jusqu'à ce que le serveur nfs tombe en panne. il n'y a eu aucune mise à jour logicielle récemment. J'ai développé la question
Rory

Votre monture NFS peut être (partiellement) périmée; se passe ici avec un serveur NFS basé sur FreeBSD et des clients Solaris. Le démontage / remontage du partage NFS résout le problème pour nous.
Tel Janin

1
le redémarrage du client qui avait le montage NFS ne l'a pas corrigé. (Bien qu'il y ait d'autres machines qui montent à partir de ce serveur NFS que je n'ai pas redémarré / remonté)
Rory

1

Il existe un certain nombre d'alternatives mentionnées dans cette recherche Google pour les termes que vous avez mentionnés ci-dessus .

Quelques-unes des options mentionnées sont: disques pleins, problèmes d'autorisations, processus svnserve «bloqués» ou «bloqués» et transactions bloquées ... Vous devrez peut-être essayer un certain nombre de ces différents problèmes pour voir quel est exactement le problème dans votre Cas.

On dirait que vous utilisez le back-end SVN bsddb? Vous voudrez peut-être essayer de migrer votre référentiel vers le back-end fsfs (par défaut depuis plusieurs années maintenant). D'après mon expérience et celle de plusieurs autres personnes que je connais, il s'est avéré plus fiable que bsddb. Bien que vous souhaitiez rechercher comment il interagit avec NFS - je ne l'ai pas utilisé sur NFS.

Une autre option que vous voudrez peut-être envisager est de ne plus utiliser SVN sur NFS et de l'exécuter sur SSH sur un serveur avec le référentiel SVN stocké localement. C'est ainsi que nous faisons tout notre travail SVN, avec le backend fsfs, et je ne me souviens pas de la dernière fois que nous avons eu des problèmes de dépôt SVN.

Sean


nous utilisons le back-end FSFS
Rory

+1 pour les disques pleins! s'avère que le montage NFS n'était pas plein, le lecteur racine était ...
hwjp

0

si vous utilisez SVN avec NFS sur debian

lance ça:

/etc/init.d/portmap restart

1
Il peut être utile d'expliquer pourquoi vous proposez cela comme réponse.
Drew Khoury

0

J'ai eu des problèmes similaires ici, le mien en raison des supports NFS de vagrant. En partant de ce que Tel Janin a dit ci-dessus, j'ai redémarré rpcbind avec sudo service rpcbind restartsur mon système d'exploitation hôte. Cela a accroché mon vm. J'ai redémarré cela, ce qui m'a donné une erreur cryptée NFS failed to start with result 'dependency'. Cela a bien fonctionné et je suis maintenant un campeur heureux.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.