2016-07-11 55 views
41

Sto usando TeamCity su ubuntu (TeamCity Professional 9.1.7 (build 37573)). E avendo qualche problema con le fusioni automatiche ultimamente (git). Non ho cambiato nulla nella configurazione da quando ha funzionato. Ho provato a rimuovere la directory di lavoro. è stato utile solo per un paio di fusioni.Il canale non è aperto Errori nell'unione automatica su Teamcity (git)

Sintomi: Il log di compilazione appare pulita, e io sono sempre presente sulla panoramica di generazione:

Failed to merge sources in VCS root foo. Merge error 'git fetch'  command failed. 
stderr: [email protected]:foo/foo.git: channel is not opened. 
exit code: 1. 

Anche se, l'agente esegue questo sto ottenendo un errore di totalmente diverso in teamcity-vcs.log :

[2016-03-30 15:14:31,722] INFO -  jetbrains.buildServer.VCS - [/home/ubuntu/BuildAgent/work/7676127c0a691f42]: /usr/bin/git show-ref refs/remotes/origin/foo 
[2016-03-30 15:14:31,775] INFO -  jetbrains.buildServer.VCS - [/home/ubuntu/BuildAgent/work/7676127c0a691f42]: /usr/bin/git log -n1 --pretty=format:%H%x20%s 193f46d88205c5e419a8a7458e742ce9b598cca8 
-- 
[2016-03-30 15:14:31,797] WARN -  jetbrains.buildServer.VCS - '/usr/bin/git log -n1 --pretty=format:%H%x20%s 193f46d88205c5e419a8a7458e742ce9b598cca8 --' command failed. 
stderr: fatal: bad object 193f46d88205c5e419a8a7458e742ce9b598cca8 
[2016-03-30 15:14:31,798] INFO -  jetbrains.buildServer.VCS - [/home/ubuntu/BuildAgent/work/7676127c0a691f42]: /usr/bin/git fetch --progress origin +refs/heads/foo:refs/remotes/origin/foo 
[2016-03-30 15:14:35,832] WARN -  jetbrains.buildServer.VCS - Error output produced by: /usr/bin/git fetch --progress origin +refs/heads/foo:refs/remotes/origin/foo 
[2016-03-30 15:14:35,832] WARN -  jetbrains.buildServer.VCS - remote: Counting objects: 2, done.ESC[K 
remote: Compressing objects: 50% (1/2) ESC[K 
remote: Compressing objects: 100% (2/2) ESC[K 
remote: Compressing objects: 100% (2/2), done.ESC[K 
remote: Total 2 (delta 1), reused 0 (delta 0)ESC[K 
From bitbucket.org:bar/bar 
    62ba378..193f46d foo -> origin/foo 

Come se il comando di registro non è riuscita ..

0.123.

Grazie.


Aggiornamento: Ho ottenuto un aggiornamento che non v'è evidenza aneddotica che ciò è dovuto a cambiamenti specificamente a git di BitBucket su server SSH.

+6

Stiamo vedendo lo stesso problema, solo iniziato oggi – John

+3

+1 Proprio iniziato a vedere questo nel l'ultimo paio di giorni dopo l'aggiornamento di Ubuntu. Sto conducendo TeamCity su EC2 e usando Git su BitBucket. Stai anche navigando su EC2 o è nel tuo centro dati? – cheez

+1

Ottenendo questo anche da alcuni giorni. Ho pensato una sorta di tasso che limita il lato di BitBucket. La cosa che noto è che gli errori sono più frequenti subito dopo una spinta. Il mio intervallo è di 30 secondi, di solito il primo controllo dopo un push fallisce mentre il seguente funziona. Self ospitato su OVH. – namero999

risposta

10

Aggiornamento: JetBrains ha rilasciato una patch per questo problema - vedere https://youtrack.jetbrains.com/issue/TW-46052 per i dettagli.

+0

Grazie, ti ho appena inviato un'email. – cheez

+0

Ho anche inviato un e-mail allo – John

+0

Un altro utente (nuovo) TC 9.x con lo stesso problema. Ho provato ad aggiornare il mio eseguibile Git su Ubuntu 14.04 a 2.x. Questo non sembra risolvere il problema. –

22

TeamCity ha utilizzato il multiplexing ssh che è stato recentemente disattivato in Bitbucket Cloud. Se sei affetto da questo problema, guarda lo https://youtrack.jetbrains.com/issue/TW-46052, le correzioni verranno pubblicate lì (al momento della scrittura c'è una correzione per TeamCity 9.1.xe 9.0.x). Una soluzione alternativa senza installare un plugin git più recente consiste nell'utilizzare https o protocollo anonimo invece di ssh.

Aggiornamento

Il fix iniziale causato cambiamenti di raccolta a fallire con errori di timeout in TeamCity 8.1.x e 9.0.x, questo è fixed now.

+0

Questa correzione sembra funzionare per me. – cheez

+0

Torna indietro per usare https invece di ssh, soluzione rapida e semplice. L'aggiunta del plugin funziona solo per alcune configurazioni di build, una ha funzionato per me e una continua a essere bloccata nella raccolta delle modifiche nella radice di vcs – Joshscorp

+1

No, il ritorno a HTTPS non funziona per quelli di noi con repository di bitbucket grandi e grandi che sono diversi Anni. SSH ha funzionato bene per questo. Vergogna su Bitbucket e Atlassian. – danieljimenez

23

Per https://youtrack.jetbrains.com/issue/TW-46052, il problema è stato risolto. La correzione verrà spedita con la prossima versione, 9.1.8 o 10. Se non si desidera attendere la versione, è possibile aggiornare manualmente il plugin git scaricandolo from here (accedendo come ospite o creando un account sul build server di JetBrains) e sostituendolo nell'installazione.

  • Spegnere TC
  • messo il file scaricato jetbrains.git.zip nel %TEAM_CITY%/webapps/ROOT/WEB-INF/plugins sostituire quello esistente
  • Restart TC

Questo risolto il problema per me e per gli altri.

+0

Questo errore ha causato l'errore, ma i build si bloccano ancora tentando di raccogliere le modifiche. – danieljimenez

+0

Sembra che Atlassian abbia cambiato qualcosa ieri sera, ma ora tutto funziona bene. – danieljimenez

+2

Non è necessario creare un account sul build server, basta fare clic su "Accedi come ospite" – paz

1

Mi sono imbattuto in questo problema già due volte ed è diventato fastidioso.

Per utenti Linux che hanno installato correttamente TeamCity (ad es.hanno un utente separato e un servizio di TeamCity), questo script dovrebbe fare tutto il lavoro pesante (dato avete sudo):

function patch_teamcity_plugin() { 
    # Find teamcity plugin dir. 
    sudo updatedb 
    path_part="webapps/ROOT/WEB-INF/plugins" 
    teamcity_plugin_dir=$(locate $path_part | grep -o -E ".*$path_part" | head -n 1) 

    if [ "$teamcity_plugin_dir" == "" ]; then 
    echo "Cannot find teamcity plugins directory." 1>&2 
    return 1 
    fi 

    login_url="https://teamcity.jetbrains.com/guestLogin.html?guest=1" 
    cookie_file=$(mktemp) 

    # Log in as guest. 
    # Wget login - thanks to: http://stackoverflow.com/a/1432161/2041634 
    wget --save-cookies $cookie_file --keep-session-cookies $login_url 

    # Download the plugin to the teamcity plugin directory. 
    plugin_url="https://teamcity.jetbrains.com/repository/download/TeamCityPluginsByJetBrains_Git_JetBrainsGitPluginTeamCity91x/843194:id/jetbrains.git.zip" 
    plugin_dest_filename="$teamcity_plugin_dir/jetbrains.git.zip" 
    sudo wget --load-cookies $cookie_file $plugin_url -O $plugin_dest_filename 

    if [ "$?" != "0" ]; then 
    echo "Failed download of plugin." 1>&2 
    return 1 
    fi 

    # Copy permissions - thanks to: http://unix.stackexchange.com/a/20646 
    sudo chown --reference="$teamcity_plugin_dir" "$plugin_dest_filename" 
    sudo chmod 0755 "$plugin_dest_filename" 

    # Restart TeamCity server. 
    sudo service teamcity restart 
} 

patch_teamcity_plugin()