web-dev-qa-db-ja.com

Teamcity(git)の自動マージでチャネルが開かないエラー

私はTeamCityをubuntu(TeamCity Professional 9.1.7 (build 37573))で使用しています。そして、最近の自動マージにいくつか問題があります(git)。以前は機能していたときから、構成に変更を加えていません。作業ディレクトリを削除しようとしました。いくつかのマージに役立ちました。

症状:ビルドログはきれいに見え、ビルドの概要でこれを取得しています:

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.

ただし、これを実行しているエージェントでは、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 

Logコマンドが失敗したかのように。

ありがとう。


更新:これは、SSHサーバー上のBitBucketのgitの変更が特に原因であるという事例証拠があるという更新を受け取りました。

42
Oren

https://youtrack.jetbrains.com/issue/TW-46052 に従い、問題は修正されました。修正は次のリリース9.1.8または10に同梱されます。リリースを待たない場合は、gitプラグインをダウンロードして手動で更新できます ここから (ロギングゲストとして、またはJetBrainsのビルドサーバーでアカウントを作成し、インストールでそれを置き換えます。

  • TCをシャットダウンする
  • ダウンロードしたファイルを置くjetbrains.git.Zip in %TEAM_CITY%/webapps/ROOT/WEB-INF/plugins既存のものを置き換える
  • TCを再起動

これで私や他の人の問題が解決しました。

23
namero999

TeamCityは、最近Bitbucket Cloudで無効にされたssh多重化を使用しました。この問題の影響を受ける場合は、 https://youtrack.jetbrains.com/issue/TW-46052 をご覧ください。修正がそこに投稿されます(執筆の時点で、 TeamCity 9.1.xおよび9.0.x)。新しいgit-pluginをインストールしない場合の回避策は、sshの代わりにhttpsまたは匿名プロトコルを使用することです。

更新

最初の修正により、TeamCity 8.1.xおよび9.0.xで変更の収集がタイムアウトエラーで失敗しました。これは 今修正済み です。

22
neverov

更新: JetBrains がこの問題のパッチをリリースしました-詳細は https://youtrack.jetbrains.com/issue/TW-46052 を参照してください。

10
Benjamin Echols

私はすでにこの問題に2回遭遇し、迷惑になりました。

TeamCityを適切にインストールしたLinuxユーザー(たとえば、個別のユーザーとteamcityサービスを持っている)の場合、このスクリプトは(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()
1
kburnik