トラブルシューティング
トラブルシューティング
ビルドでエラーが発生する、もしくは、ビルド時間が最低でも2倍以上改善されない場合は次のトラブルシューティングをご覧になるか、support1@incredibuild.co.jp までお問い合わせください。
エラーが発生する場合は、トラブルシューティングを試す前に IncrediBuild を再起動して問題が解決するかどうか確認してください。
IncrediBuild の再起動手順:
- ターミナルで次のコマンドを入力します。sudo service incredibuild restart または /etc/init.d/incredibuild restart
ログファイルの出力
ビルド出力を含むログファイルを生成してサポートチームに送信してください。エラーの発生場所を特定するお手伝いをします。
ログファイルを添付して support1@incredibuild.co.jp までメールをお送りください。
発生したエラーに応じてログファイルを出力してください。
- 実行中にビルドが停止、もしくはフリーズする場合は、-d1 フラグを使用してリビルドし、関連するログファイルを出力してサポートに送信してください。
- エラーメッセージを出力してビルドが失敗する場合は、-d1 フラグを使用してリビルドし、関連するログファイルを出力してサポートに送信してください。
- ビルドがクラッシュする場合は、-d1 と --ib-crash フラグを使用してリビルドし、関連するログファイルを出力してサポートに送信してください。
ビルド全体のログファイルの出力手順:
- 「Build History」画面で、ログを出力したいビルドの [Action] アイコンをクリックします。
- [History] > [Export Logs] の順にクリックします。
特定のプロセスのログファイルの出力手順:
- 「Build History」画面で、ログを出力したいビルドの [Action] アイコンをクリックします。「Build Progress」画面を表示します。
- ログファイルを出力したいプロセスのプログレスバーをクリックします。
- [Export Log] をクリックして出力します。
パフォーマンスが想定を下回る
ビルド時間が改善したかどうかを計測する前に、少なくとも 1 回は IncrediBuild でビルドを実行してください。実行済みのビルドはリモートヘルパー Agent のキャッシュに記録され、以降のビルドでネットワーク トラフィックとファイルのコピー時間を大幅に削減します。
Build Progress のモニターに表示されるタスクバーが少ない、またはコンパイル プロセスが見当たらない
ビルドに IncrediBuild がインターセプトしないプロセスが含まれている可能性があります。Ib_profile.xml でプロセス名を設定して、コンパイルタスクを生成するまでのすべての子プロセスに Intercepted 属性を設定します。
表示例:
- 上の画像でスクリプト「runbuild.sh」は別のスクリプト「mymake.sh」を実行しており、続いて Linux のカーネル ビルドを実行します。IncrediBuild にとって「mymake.sh」は不明なので、単一の長いタスクと gcc コマンドとして実行されました。この場合、「mymake.sh」を Intercepted として ib_profile.xml に追加すると、gcc コマンドが IncrediBuild によって分散されます。
- 「mymake.sh」を ib_profile に Intercepted として追加した場合、下図のビルドモニターに示すような結果となります。
タスクがリモート Agent で頻繁に失敗する
リモート Agent で実行中のタスクが頻繁に失敗する場合は、ルート権限でビルドを実行しているかどうかを確認してください。権限が不足している場合、リモート Agent (ヘルパー) でのタスクは失敗します。
ビルドが想定を下回るヘルパーにしか分散されない
たくさんの Agent があるにもかかわらず、一部の Agent しかビルドに参加していない場合は、同時に処理するタスク数を増やすため -j フラグ (該当する場合) に大きな値を設定してみてください。
ビルド タスクがローカルコアでしか実行されない
タスクがイニシエーター Agent の CPU コア上でのみ実行され、リモート Agent (ヘルパー) で実行されない場合は次をお試しください。
- カスタムツールやコンパイラを分散して高速化したい場合は、ib_profile.xml のコンパイル プロセス名が「allow_remote」に設定されていることを確認します。
- ib_profile.xml で親プロセスツリー内のすべての処理に Intercepted のフラグが使われていることを確認します。
- リモート Agent が [Coordinator Monitor] タブの [Agent Name] 列で [Online (Subscribed)] と表示されていることを確認します。