0

現在、Lion (10.7.4) を実行している Mac mini サーバーで Jenkins をセットアップしていますが、git/github 統合でいくつかの問題が発生しています。

私が抱えている問題のトラブルシューティングを行うために、非常に基本的なもの (この場合は git リポジトリのみ) を使用してテスト ジョブをセットアップしました。ジョブは単にリモート リポジトリを複製する必要があります。
これは現在起こっていることです:

Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/workspace/fr-develop-latest
Checkout:fr-develop-latest / /Users/Shared/Jenkins/Home/workspace/fr-develop-latest - hudson.remoting.LocalChannel@1eaaf438
Using strategy: Default
Cloning the remote Git repository
Cloning repository origin

...そして、それは単にそこに長時間ハングアップします(最終的にはタイムアウトします)。

私は明らかにこれを探し回り、同じ問題を抱えている人を何人か見つけましたが、解決策はありませんでした。

問題をさらにトラブルシューティングするために、いくつかのことを試しました。

. export簡単なコマンドのみを実行する「シェルの実行」ビルド ステップを追加しました。その出力は次のとおりです。

Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/workspace/test
[test] $ /bin/sh -xe /var/folders/05/tx3h6q9d0fd357pwxqswnqb400007v/T/hudson3541244199270773922.sh
+ export
export BUILD_ID="2012-10-10_14-13-21"
export BUILD_NUMBER="16"
export BUILD_TAG="jenkins-test-16"
export BUILD_URL="http://ctx.local:8080/job/test/16/"
export EXECUTOR_NUMBER="0"
export HOME="/Users/Shared/Jenkins"
export HUDSON_COOKIE="19f08f0b-059d-40b9-9672-ead63c741910"
export HUDSON_HOME="/Users/Shared/Jenkins/Home"
export HUDSON_SERVER_COOKIE="82054d3c12fc596dd66eabce21a6bf3e"
export HUDSON_URL="http://ctx.local:8080/"
export JAVA_ARCH="x86_64"
export JAVA_MAIN_CLASS_63290="Main"
export JENKINS_HOME="/Users/Shared/Jenkins/Home"
export JENKINS_SERVER_COOKIE="82054d3c12fc596dd66eabce21a6bf3e"
export JENKINS_URL="http://ctx.local:8080/"
export JOB_NAME="test"
export JOB_URL="http://ctx.local:8080/job/test/"
export LOGNAME="jenkins"
export NODE_LABELS="master"
export NODE_NAME="master"
export OLDPWD
export PATH="/usr/bin:/bin:/usr/sbin:/sbin"
export PWD="/Users/Shared/Jenkins/Home/workspace/test"
export SECURITYSESSIONID="186ae"
export SHELL="/bin/bash"
export SHLVL="1"
export TMPDIR="/var/folders/05/tx3h6q9d0fd357pwxqswnqb400007v/T/"
export USER="jenkins"
export WORKSPACE="/Users/Shared/Jenkins/Home/workspace/test"
export __CF_USER_TEXT_ENCODING="0xFB:0:0"
export com.apple.java.jvmMode="client"
export com.apple.java.jvmTask="CommandLine.java"
Finished: SUCCESS

. 元のテスト ジョブを実行しているときps -ef | grep gitに、シェルで実行したところ、次のようになりました。

251 64578 63290   0  2:05pm ??         0:00.22 /usr/bin/git clone --progress -o origin git@github.com:MyProjectRedacted/FR-Dev.git /Users/Shared/Jenkins/Home/workspace/fr-develop-latest
251 64579 64578   0  2:05pm ??         0:03.98 ssh git@github.com git-upload-pack 'EFEdcuationFirstMobile/FR-Dev.git'
251 64582 64578   0  2:05pm ??         0:03.36 git index-pack --stdin -v --fix-thin --keep=fetch-pack 64578 on ctx.ci.local

user として実行しているシェルではjenkins、同じコマンドを実行しても/usr/bin/git clone --progress -o origin git@github.com:MyProjectRedacted/FR-Dev.git /Users/Shared/Jenkins/Home/workspace/fr-develop-latest問題なく動作します。リポジトリが複製されます。

最後に、まったく同じコマンドを使用して、新しい「シェルの実行」ビルドステップを追加しようとしました。それも機能します。

だから...間違いなく物事を台無しにしているgitプラグインの何か。
ユーザーセットアップ用の SSH キーがjenkins正しくあり、ssh git@github.com を使用してリモート git リポジトリに接続できます。

この時点で、私は少し立ち往生しています。
この問題を解決する方法についてのアイデアはありますか?

4

2 に答える 2

1

同様の症状が見られ、Jenkin の Git プラグイン clone() メソッドでワークスペースを再帰的に削除したことが原因であることがわかりました (以下のコード スニペットを参照)。私の場合、1 つのカスタム ワークスペースを共有する多数のジョブがあるため、削除の呼び出しが完了するまでに数時間かかりました。カスタム ワークスペースを削除した後、クローン操作は正常に完了しました。

https://github.com/jenkinsci/git-plugin/blob/master/src/main/java/hudson/plugins/git/GitAPI.javaから:

final String source = remoteConfig.getURIs().get(0).toPrivateString();

listener.getLogger().println("Cloning repository " + source);
final int[] gitVer = getGitVersion();

try {
    workspace.deleteRecursive();  // This line was taking forever
} catch (Exception e) {
    e.printStackTrace(listener.error("Failed to clean the workspace"));
    throw new GitException("Failed to delete workspace", e);
}
于 2012-10-22T14:25:45.817 に答える
0

さて、問題は解決しました。そもそも問題がなかったことがわかりました。

git cloneぶら下がっ ている印象を与える 2 つのことが起こりました。

  1. 進行状況が更新されていませんでした
  2. 昨日は通信速度が異常に遅かった

実は仕事を止めるのを忘れていたのですが、今日戻ってきたときはすべて順調でした。
乾杯。

于 2012-10-11T09:14:10.027 に答える