2013-09-04 4 views
6

Ho avuto Jenkins in esecuzione da circa un anno. Costruisce master, rc * e rami di produzione. Ad ogni commit, esegue un clone git, installa un bundle, esegue una migrazione, ecc. Funziona perfettamente. Recentemente, si sta venendo a mancare e sto ottenendo il seguente traceback:Che cosa significa "FATAL: errore nel calcolo della base di unione"?

FATAL: Error computing merge base 
hudson.plugins.git.GitException: Error computing merge base 
    at hudson.plugins.git.util.GitUtils.filterTipBranches(GitUtils.java:149) 
    at hudson.plugins.git.util.DefaultBuildChooser.getAdvancedCandidateRevisions(DefaultBuildChooser.java:201) 
    at hudson.plugins.git.util.DefaultBuildChooser.getCandidateRevisions(DefaultBuildChooser.java:46) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1057) 
    at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:948) 
    at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:118) 
    at hudson.remoting.UserRequest.perform(UserRequest.java:48) 
    at hudson.remoting.Request$2.run(Request.java:326) 
    at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:679) 

con il seguente visualizzato subito dopo:

Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing commit 2faf546491565d033b1e0a79bef4b2d107447f49 
    at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:149) 
    at org.eclipse.jgit.revwalk.RevWalk.getCachedBytes(RevWalk.java:853) 
    at org.eclipse.jgit.revwalk.RevCommit.parseHeaders(RevCommit.java:142) 
    at org.eclipse.jgit.revwalk.MergeBaseGenerator.next(MergeBaseGenerator.java:148) 
    at org.eclipse.jgit.revwalk.StartGenerator.next(StartGenerator.java:102) 
    at org.eclipse.jgit.revwalk.RevWalk.next(RevWalk.java:414) 
    at hudson.plugins.git.util.GitUtils.filterTipBranches(GitUtils.java:127) 
    ... 14 more 

Questo errore commesso è anche fonte di confusione dal momento che tutti i rami lo includono.

Che cosa fa esattamente, "Errore nel calcolo della base di unione?" e perché sto ricevendo il messaggio di commit mancante?

Qualsiasi approfondimento qui sarebbe molto apprezzato.

Grazie.

fsck git:

Checking object directories: 100% (256/256), done. 
Checking objects: 100% (3203/3203), done. 

Nella mia configurazione Jenkins, il mio git plug-config è impostato su:

  1. Pulire area di lavoro prima di costruire
  2. Usa clone superficiale

Sto usando Jenkins, ver. 1.528.

+0

Sembra che il repository locale sia danneggiato. Qualche output strano da 'git fsck'? Inoltre, sono i tuoi telecomandi correttamente (i pls verificano a mano). Un'altra cosa è impostare Jenkins per ripulire lo spazio di lavoro prima di tirare (ad esempio, per eliminare tutte le modifiche locali). C'era un'impostazione per questo nella configurazione del progetto. – rlegendi

+0

dovresti taggare questo con jenkins imho – mnagel

+0

Hai sempre usato la clonazione superficiale? Penserei che, a seconda di quanto sia superficiale un clone, trovare una base di fusione di due rami (che è essenzialmente il commit più recente che entrambi hanno in comune, o il punto in cui i due rami divergono) potrebbe essere difficile. Forse non ti sei mai imbattuto in una situazione in cui hai avuto due rami la cui base di fusione era sufficientemente profonda da essere potata dal clone poco profondo ... – twalberg

risposta

7

Per il commento di twalberg sopra, disabilitare il clone superficiale ha risolto questo problema. Tutte le filiali costruite e i lavori completati.

+0

È necessario eseguire entrambe le azioni: Abilita: cancellare lo spazio di lavoro prima della compilazione, Disabilitare: usare il clone superficiale –

+0

Si prega di condividere i passaggi? –

Problemi correlati