CSSというか静的ファイル全般の配信が止まる。
(※我々の目の前で突如フラットUI化したJenkins氏の様子)
Jenkins で、 css 等が適用されなくてスタイル崩れを起こす事があるんだけどあれなんなんだろう…
— そらは (@sora_h) 2013, 4月 4
JenkinsさんちょいちょいCSSが反映されなくなるんだけどどうしてなん?
— 口玉(西の緊縛[ゴールデンボンバー]) (@Kuchitama) 2013, 7月 12
jenkinsのcssが崩れる時間と、私の顔のcssが崩れる時間の相関関係を考えている
— しまざきしょうこ♀しょっぴー (@shokos) 2013, 6月 28
(みんな困っている)
今日また起きてなんとなく https://issues.jenkins-ci.org/browse/JENKINS-17526 を読んでみたらGreg Albrechtが書いてある方法で再現した。
曰くJettyのキャッシュがOSの日次処理(`man 8 periodic`)で削除されてしまうと起きるらしい。
/usr/bin/java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Djava.io.tmpdir=$HOME/var/tmp/jetty -jar jenkins.war --httpPort=8080 --httpListenAddress=0.0.0.0
起動中に`rm -rf $HOME/var/tmp/jetty`してみたらまた発生したのでやっぱりこれが原因だった。
うちの環境はOS X上でjenkins.warから立ち上げて、内部のJettyが待ち受けてるポートにネットワーク内から直接アクセスして見てるだけなので、他の環境の人と同様かどうかは知らない。
パッチの登録が進んでるのでいずれ本体側で解決されるかもしれない
https://github.com/jenkinsci/jenkins/pull/1061
まとめ
- Jenkins再起動すれば一旦直る
- Jettyのキャッシュ出力を勝手に削除されない位置に変更する(-Djava.io.tmpdir=$HOME/var/tmp/jetty の部分)
- Jetty以外のサーバーで動かす?(要出典)
- Jenkins(やJetty)コミュニティ側で解決されるのを待つ*1
*1:04/15/14 まだ残ってるらしい https://twitter.com/muo_jp/status/455877915587010560