2014年1月8日水曜日

Jenkins 「WebUIが突然真っ白になった」のを解消させた! #jenkinsci


ども。 snicker_jpです!

突然、Jenkinsが真っ白になって、社内から通報があったので再起動して対応したんですが・・・
(ちなみに、文字は表示されます!)



どうやら、私の環境だけではないようで・・・


上記サイトを参考に、対応してみました!

まずは、状況の整理をします。

前提条件

現象が起きた環境の前提条件を記載しておきます!
  • CentOS release 6.5
  • jenkins-1.537-1.1.noarch
  • JenkinsはRPMからインストール

Jenkinsのissuesにもあがっているようです。

まとめると、
「tmpwatchのcronで/tmp以下のファイルが消えてしまうため!」

/tmpの下にJettyがファイルをWebUIのファイルを置いてしまうので、このようなことが起きると。

対応方法

対応策はいくつかあるので、わかっている範囲であげておきます!
  • tmpwatchのcron設定を変更する
  • Javaのオプションに「java.io.tmpdir」を指定してあげる

私の環境では、後者を選択しました。

実際の対策

対策の手順です。
  • Jenkinsを停止する
  • /etc/sysconfig/jenkinsを、編集する
  • Jenkinsを起動する


「/etc/sysconfig/jenkins」を、編集する

可能であれば、「Jenkinsを停止する」をしましょう。
次に
initスクリプトを編集しようかと思ったのですが、おそらくバージョンアップなどで上書きされてしまうし、あんまりよろしくないので、上書きされない「/etc/sysconfig/jenkins」を選びました。
差分を提示します。
--- /home/snicker_jp/jenkins-sysconfig   2014-01-08 15:03:37.179333667 +0900
+++ /etc/sysconfig/jenkins      2014-01-08 15:24:11.126332277 +0900
@@ -34,7 +34,9 @@
 #
 # Options to pass to java when running Jenkins.
 #
-JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
+#JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true"
+tmpdir="/var/cache/jenkins/war"
+JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djava.io.tmpdir=${tmpdir}"

 ## Type:        integer(0:65535)
 ## Default:     8080
  • tmpdirを「/var/cache/jenkins/war」に指定
  • JENKINS_JAVA_OPTIONSに「-Djava.io.tmpdir=${tmpdir}」を追加
編集出来たら、「Jenkinsを起動する

確認

「/var/cache/jenkins/war」以下に、Jettyのファイルが出来ていれば、成功です!
akuma3564825645114509647jar
ColorFormatter.class
css
dc-license.txt
executable
favicon.ico
help
images
jetty-0.0.0.0-8080-jenkins.war-_jenkins-any-
jna
jna3367531845598125382jar
JNLPMain.class
LogFileOutputStream$1.class
LogFileOutputStream$2.class
LogFileOutputStream.class
Main.class
MainDialog$1$1.class
MainDialog$1.class
MainDialog.class
Main$FileAndDescription.class
META-INF
robots.txt
scripts
WEB-INF
winstone6878079771321602306.jar
winstone.jar


まとめ


  • ブログに気が付かなければ、この対策もしなかったのでありがとうございます!
  • LTS(Long-Term Support Release)だけ、使うべきなんですかね!?(LTSは非Jetty)
  • OSSは奥が深い!


Zenback