O que significa 'sem bloqueios disponíveis'?

9

Estou tentando me comprometer com um servidor SVN. No servidor, o repositório do subversion é montado por NFS. Ao fazer uma confirmação, recebo esta mensagem de erro:

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

Isso costumava funcionar, e não houve atualizações / alterações de software em nada. No entanto, o servidor NFS travou mais cedo, por isso pode estar 'corrompido' (se isso for aplicável aqui)

Rory
fonte

Respostas:

12

Existem algumas possibilidades aqui:

  1. A conta do usuário que está fazendo a atualização do SVN pode não ter permissão de atualização no diretório do repositório
  2. O sistema de arquivos NFS em que o repositório está armazenado pode estar cheio
  3. O daemon de bloqueio (lockd) pode não estar em execução no servidor NFS.

ATUALIZAÇÃO: após a atualização da pergunta, eu suspeito que # 3. Verifique se o lockd está configurado para iniciar quando o servidor NFS for reiniciado.

gareth_bowles
fonte
1
"ps aux | lockd grep" no servidor tem saída, então eu acho que ele está correndo
Rory
Foi relacionado ao servidor NFS.
Francisco
Meu caso foi # 3. Fixada pelo /sbin/service nfslock startno CentOS 6.8 ( . De referência: 18.1.1 Obrigatório Serviços
João cenoura
3

Verifique se o servidor NFS suporta bloqueios; pode ser necessário habilitar processos adicionais no servidor NFS para fazer isso; consulte rpc.lockd (8) e rpc.statd (8) .

Além disso, se o servidor NFS tiver sido reiniciado recentemente, você poderá ter uma montagem NFS obsoleta ou mesmo parcialmente. Tente desmontar e remontar a montagem do NFS também.

EDIT: com base na sua outra pergunta , parece que o lockd não foi iniciado depois que o servidor NFS se recuperou da falha.

Tel Janin
fonte
Costumava funcionar, até o servidor nfs travar. Não houve atualizações de software recentemente. Eu já expandiu a questão
Rory
Sua montagem do NFS pode ser (parcialmente) obsoleta; acontece aqui com um servidor NFS baseado no FreeBSD e clientes Solaris. A desmontagem / remontagem do compartilhamento NFS corrige o problema para nós.
Tel Janin
1
reiniciar o cliente que tinha a montagem NFS não a corrigiu. (Embora existam outras máquinas que estão montando a partir desse servidor NFS que eu não tenha reiniciado / remontado)
Rory
1

Há várias alternativas mencionadas nesta pesquisa do google pelos termos mencionados acima .

Algumas das opções mencionadas são: discos completos, problemas de permissão, processos svnserve "travados" ou "travados" e transações travadas ... Você pode precisar experimentar vários desses problemas para ver qual é exatamente o problema em seu computador. caso.

Parece que você está usando o back-end SVN bsddb? Você pode tentar migrar seu repositório para o back-end fsfs (o padrão há vários anos). Na minha experiência e na de várias outras pessoas que conheço, provou ser mais confiável que o bsddb. Embora você queira pesquisar como ele interage com o NFS - eu não o usei no NFS.

Outra opção que você pode considerar é deixar de usar o SVN sobre NFS e, em vez disso, executá-lo no SSH em um servidor com o repositório SVN armazenado localmente. É assim que fazemos todo o nosso trabalho SVN, com back-end fsfs, e não me lembro da última vez em que tivemos problemas no repositório SVN.

Sean

Sean Reifschneider
fonte
estamos usando FSFS back-end
Rory
+1 para discos completos! Acontece que, embora a montagem NFS não estava cheio, a unidade de raiz era ...
hwjp
0

se você estiver usando SVN com NFS no debian

Rode isto:

/etc/init.d/portmap restart
SamZhou
fonte
1
Pode ser útil explicar por que você sugere isso como sua resposta.
Desenhou Khoury
0

Eu tive problemas semelhantes aqui, os meus devido às montagens NFS dos vagantes. Seguindo o que Tel Janin disse acima, reiniciei o rpcbind sudo service rpcbind restartno SO do meu host. Isso pendurou minha vm. Eu reiniciei isso, o que me deu um erro enigmático do NFS failed to start with result 'dependency'. Mas funcionou e agora sou um campista feliz.

Justin Abrahms
fonte