2016-07-11 16 views
41

Ich verwende TeamCity auf ubuntu (TeamCity Professional 9.1.7 (build 37573)). Und einige Probleme mit automatischen Zusammenführungen in letzter Zeit (Git). Ich habe nichts in der Konfiguration geändert, als es früher funktionierte. Ich habe versucht, das Arbeitsverzeichnis zu entfernen. es half nur für ein paar Zusammenführungen.Kanal ist nicht geöffnet Fehler in der automatischen Zusammenführung auf Teamcity (git)

Symptome: Das Buildprotokoll sieht sauber, und ich diese Übersicht über die Build bekommen:

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. 

Obwohl, in dem Agenten des Lauf i in teamcity-vcs.log eine ganz andere Störung erhalte :

[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 

Als ob der Log-Befehl fehlgeschlagen ..

Danke.


Update: Ich habe ein Update, dass es vereinzelte Hinweise darauf, dass dies aufgrund von Änderungen ist speziell in BitBucket git über SSH-Server.

+6

Wir haben das gleiche Problem sehen, den Autor diese heute nur – John

+3

+1 Gerade erst begonnen zu sehen, in der Die letzten paar Tage nach dem Upgrade von Ubuntu. Ich betreibe TeamCity auf EC2 und benutze Git auf BitBucket. Laufen Sie auch auf EC2 oder in Ihrem eigenen Rechenzentrum? – cheez

+1

Das bekommen wir auch seit ein paar Tagen. Ich dachte mir eine Art BitBucket-Seite. Die Sache, die ich bemerke, ist, dass die Fehler gleich nach einem Stoß häufiger sind. Meine Intervallzeit beträgt 30 Sekunden. In der Regel ist die erste Überprüfung nach einem Push fehlgeschlagen, solange Folgendes funktioniert. Selbst gehostet auf OVH. – namero999

Antwort

10

Aktualisiert: JetBrains hat einen Patch für dieses Problem veröffentlicht - siehe https://youtrack.jetbrains.com/issue/TW-46052 für Details.

+0

Vielen Dank, ich habe Ihnen gerade eine E-Mail. – cheez

+0

Ich habe auch – John

+0

eine andere (neue) TC 9.x Benutzer hier mit dem gleichen Problem gemailt. Ich habe versucht, meine ausführbare Git-Datei unter Ubuntu 14.04 auf 2.x zu aktualisieren. Dies schien das Problem nicht zu lösen. –

22

TeamCity verwendet ssh multiplexing, das kürzlich in Bitbucket Cloud deaktiviert wurde. Wenn Sie von diesem Problem betroffen sind, beachten Sie bitte die https://youtrack.jetbrains.com/issue/TW-46052, Fixes werden dort veröffentlicht (zum Zeitpunkt des Schreibens gibt es eine Lösung für TeamCity 9.1.x und 9.0.x). Eine Problemumgehung ohne Installation eines neueren Git-Plugins ist die Verwendung von https oder anonymous anstelle von ssh.

aktualisieren

Die anfängliche Verlegenheit Änderungen Sammlung mit Timeout-Fehler in Teamcity 8.1.x und 9.0.x, ist dies fixed now scheitern verursacht.

+0

Dieses Update scheint für mich arbeiten. – cheez

+0

Zurückfallen, um https anstelle von ssh zu verwenden, schnelle und einfache Lösung. Die Erweiterung des Plugins funktioniert nur für einige Build-Konfigurationen, eine für mich gearbeitet und eine blieb in Änderungen sammeln in vcs root – Joshscorp

+1

Nein, zurück zu HTTPS funktioniert nicht für diejenigen von uns mit großen, großen Bitbucket Repos, die mehrere sind Jahre alt. SSH hat dafür gut funktioniert. Schande über Bitbucket und Atlassian. – danieljimenez

23

Pro https://youtrack.jetbrains.com/issue/TW-46052 wurde das Problem behoben. Der Fix wird mit der nächsten Version, entweder 9.1.8 oder 10, geliefert. Wenn Sie nicht auf die Veröffentlichung warten möchten, können Sie das Git-Plugin manuell aktualisieren, indem Sie es herunterladen from here (Einloggen als Gast, oder Erstellen eines Konto auf dem Build Server von JetBrains) und ersetzen Sie es in Ihrer Installation.

  • TC Shut down
  • die heruntergeladene Datei jetbrains.git.zip in %TEAM_CITY%/webapps/ROOT/WEB-INF/plugins Legen Sie die vorhandene
  • Restart TC für mich und andere

Dies das Problem behoben zu ersetzen.

+0

Das machte den Fehler weg, aber Builds hängen immer noch auf, um Änderungen zu sammeln. – danieljimenez

+0

Erscheint Atlassian hat letzte Nacht etwas geändert, bc jetzt funktioniert alles gut. – danieljimenez

+2

Keine Notwendigkeit, ein Konto auf dem Build-Server zu erstellen, klicken Sie einfach auf "Als Gast anmelden" – paz

1

Ich bin schon zweimal auf dieses Problem gestoßen und es wurde nervig.

Für Linux-Benutzer, die TeamCity ordnungsgemäß installiert haben (z.hat einen separaten Benutzer und Teamcity Service), sollte dieses Skript alles tun, das schwere Heben (da Sie sudo haben):

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()