Jenkins PostBuildTaskプラグインでエラーが発生する時の対処法

結論: PostBuildScript Plugin を使う

Post build taskJenkins のビルド処理後にタスクを実行できるプラグインですが、 このプラグインを使用しているときに以下のようなエラーがでてビルドが正常に終了しないことがありました。

FATAL: Java heap space
java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOfRange(Arrays.java:3209)
    at java.lang.String.<init>(String.java:215)
    at java.lang.StringBuilder.toString(StringBuilder.java:430)
    at hudson.Util.loadFile(Util.java:187)
    at hudson.model.Run.getLog(Run.java:1745)
                :
                :

AbstractBuild.getLog() を引数無しで使っていて 、 バカでかいビルドログファイルを出力していた場合にエラーが発生していました。

同じようなエラーがすでにIssuesにもあげられているようでした。

https://issues.jenkins-ci.org/browse/JENKINS-12830

Jenkins自体の起動オプションで -Xmx1.5g 等を指定してヒープ領域増やしたりしても解決しなかったので、 ビルドログ出力を抑えるのもひとつの解決策かと思いますが、 私は PostBuildScript Plugin を使う事で解決しました。

特に機能的には遜色ないので、 PostBuildScript Plugin を使うのが良いかなと。 同じような問題に遭遇していた方は参考にしていただければ。

各種バージョンは以下の通りです。

  • Jenkins 1.524
  • Post build task 1.8
  • PostBuildScript Plugin 0.13