2012-05-10 23 views
1

Jenkins(1.461)によって行われたビルドは、途中の任意の場所で停止することがあります。これらのビルドは、主にC++コードのVisual Studio 2008 SP1のdevenv.comへの手動スクリプト呼び出しです。 Visual Studioはエラーメッセージを表示しません。 devenvのログの最後のメッセージは、ランダムなファイルが構築されていることです。いくつかのビルド出力に依存するビルド後のWindowsバッチコマンドのため、Jenkinsビルドが失敗します。これは非常にまれにしか発生しません(約15のビルドに1つ)。 Jenkinsのエラーログには、ビルドに失敗したときの頃から何の変化も見られません。驚いたことに、ビルドは成功したと言われています。ユーザーがノードからログオフしたときにJenkinsビルドが失敗する

問題はジェンキンスとは隔離されています。開発者の机で実行される同じビルドスクリプトは、このように失敗したことはありません。

Jenkinsノードは、32ビットのWindows XPマシンです。それらはすべて十分な空きディスク容量を持っています。 Jenkinsはノードごとに一度に1つのジョブのみを実行するように設定されています。イベントログには、ビルドが停止したときに明らかに悪いこと(Visual Studioのクラッシュなど)が発生していないことが示されています。

誰でもこれをトラブルシューティングするために調べるべきアイデアはありますか?

+0

Jenkinsのログには何が記録されていますか? (http:// [jenkins_server]/log)。 –

答えて

0

私たちは、Jenkinsノードのログオフイベントとランダムビルドの失敗を関連づけました。これにより、このJVM bug/feature(Oracle JavaバグID 6871190)が生成されます.Windowsのログオフイベントにより、シグナルハンドラはJVMを終了させます。 -XrsオプションをJVMに渡すことで(おそらく他の弱点を使って)この動作を無効にできますが、そのオプションは自動的に子Javaプロセスに伝播しません。

Jenkins自体をキックオフするために-Xrsを渡しており、Jenkinsサービス自体がログオフしています。現在の仮説は、Jenkinsのビルドプロセスの一部が、-Xrsで起動されていない別のJava子プロセスを介して開始されることです。

+0

私はJavaアプリケーションであるMatlabと同じ問題を抱えていました。私は、 'java.opts'ファイルに '-Xrs'を設定できることを知りました。ダウンストリームプロセスにjava.optsファイルがあるかどうかを確認する価値があります。 – Craig

+0

私はUbuntuで同じ問題に直面しています: - "時には、Jenkins(1.461)によって行われたビルドは、途中でランダムな場所で停止することがあります。このように失敗した " –

0

私はジェンキン自身とこの問題を抱えていますが、私はMSVC 2008で定期的にリンカーがクラッシュしています。これはほとんど毎日私にとって起こります。リンカがクラッシュした場合、それが説明になる可能性があります(おそらくリンカのクラッシュは記録されません)。

編集: 私たちは32ビットWin7でMSVC2008 SP1を使用します。 C++ソリューションを構築する際にMSBuild 3.5を使用します。

関連する問題