Che cosa significa "nessun blocco disponibile"?


9

Sto cercando di impegnarmi in un server SVN. Sul server il repository di sovversione è montato su NFS. Quando eseguo un commit, ricevo questo messaggio di errore:

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

In passato funzionava e non sono stati apportati aggiornamenti / modifiche al software. Tuttavia, il server NFS si è arrestato in modo anomalo in precedenza, quindi potrebbe essere "danneggiato" (se applicabile anche qui)

Risposte:


12

Ci sono alcune possibilità qui:

  1. L'account utente che sta eseguendo l'aggiornamento SVN potrebbe non disporre dell'autorizzazione di aggiornamento sulla directory del repository
  2. Il file system NFS in cui è archiviato il repository potrebbe essere pieno
  3. Il daemon di blocco (lockd) potrebbe non essere in esecuzione sul server NFS.

AGGIORNAMENTO: a seguito dell'aggiornamento alla domanda, sospetterei # 3. Assicurarsi che lockd sia impostato per l'avvio al riavvio del server NFS.


1
"ps aux | grep lockd" sul server ha un output, quindi penso che stia funzionando
Rory

Era correlato al server NFS.
Francisco,

Il mio caso era il n. 3. Risolto da /sbin/service nfslock startin CentOS 6.8 ( riferimento: 18.1.1. Servizi richiesti
joao cenoura

3

Assicurarsi che il server NFS supporti i blocchi; per fare ciò potrebbe essere necessario abilitare ulteriori processi sul server NFS; vedi rpc.lockd (8) e rpc.statd (8) .

Inoltre, se il tuo server NFS è stato riavviato di recente, potresti avere un montaggio NFS stantio o anche parzialmente stantio. Prova a smontare e rimontare anche il supporto NFS.

EDIT: sulla base dell'altra tua domanda , sembra che lockd non sia stato avviato dopo che il tuo server NFS si è ripristinato dal suo arresto anomalo.


Ha funzionato, fino a quando il server nfs si è bloccato. non ci sono stati aggiornamenti di software di recente. Ho ampliato la domanda
Rory,

Il tuo mount NFS potrebbe essere (parzialmente) stantio; succede qui con un server NFS basato su FreeBSD e client Solaris. Smontare / rimontare la condivisione NFS risolve il problema per noi.
Tel Janin,

1
il riavvio del client che aveva il mount NFS non lo ha risolto. (Anche se ci sono altre macchine che stanno montando da quel server NFS che non ho riavviato / rimontato)
Rory

1

Esistono diverse alternative menzionate in questa ricerca su Google per i termini sopra menzionati .

Alcune delle opzioni menzionate sono: dischi completi, problemi di autorizzazione, processi svnserve "bloccati" o "bloccati" e transazioni sospese ... Potrebbe essere necessario provare una serie di questi diversi problemi per vedere quale sia esattamente il problema nel tuo Astuccio.

Sembra che tu stia usando il back-end SVN bsddb? Potresti provare a migrare il tuo repository sul back-end di fsfs (predefinito da diversi anni). Nella mia esperienza e da quello di molti altri che conosco, si è dimostrato più affidabile di bsddb. Anche se vorrai ricercare come interagisce con NFS - non l'ho usato su NFS.

Un'altra opzione che potresti prendere in considerazione è allontanarti dall'uso di SVN su NFS e invece eseguirlo su SSH su un server con il repository SVN archiviato localmente. Questo è il modo in cui facciamo tutto il nostro SVN, con il backend di fsfs, e non ricordo l'ultima volta che abbiamo avuto problemi con il repository SVN.

Sean


stiamo usando il back-end di FSFS
Rory,

+1 per dischi completi! risulta che sebbene il mount NFS non fosse pieno, l'unità root era ...
hwjp

0

se si utilizza SVN con NFS su debian

esegui questo:

/etc/init.d/portmap restart

1
Può essere utile spiegare perché lo suggerisci come risposta.
Ha disegnato Khoury il

0

Ho avuto problemi simili qui, i miei a causa dei montaggi NFS del vagabondo. Partendo da quanto detto sopra da Tel Janin, ho riavviato rpcbind con sudo service rpcbind restartsul mio sistema operativo host. Questo ha sospeso la mia vm. L'ho riavviato, il che mi ha dato un errore NFS criptico failed to start with result 'dependency'. Tuttavia ha funzionato e ora sono un campeggiatore felice.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.