LoginSignup
8
3

More than 5 years have passed since last update.

Jenkinsのworkspace以下のディレクトリがランダムに削除されることがあった

Last updated at Posted at 2018-05-31

数ヶ月前に自分も経験した不具合の原因が修正されたという話です。

不具合の内容

Jenkinsのmaster/slave機能を使っていると、slaveのworkspace/以下でランダムにディレクトリが消される

突然ビルドが通らなくなって焦ります(焦りました)。

最新版で修正されたようです

スクリーンショット 2018-05-31 23.23.48.png
変更2個目、進行中のビルドのworkspaceを削除しない、とあります。
次にissue 27329を見てみます。

報告

"WorkspaceCleanupThread may delete workspaces of running jobs"
https://issues.jenkins-ci.org/browse/JENKINS-27329
つくられたのはなんと2015年3月のissueです。

同内容で
"workspace being deleted mid-build on slave"
https://issues.jenkins-ci.org/browse/JENKINS-30916 とか、

おそらく同じ原因だろうと思われる、
"Workspace directory randomly deleted"
https://issues.jenkins-ci.org/browse/JENKINS-19686 とか、昔からいくつか報告は上がっていた不具合でした。

github pull request

githubのprはこれです、若干9行の変更のみ!

"JENKINS-27329 Less aggressive WorkspaceCleanupThread"
https://github.com/jenkinsci/jenkins/pull/3444
アップデート内容のお知らせよりはいくらか控えめな表現ですね(アグレッシブなスレッドとは...)
筆者もだいぶましになるが完璧な対策ではないと言っています。

変更内容

Javaは文法くらいしかわかりませんが軽く読んでみます。
https://github.com/reinholdfuereder/jenkins/blob/670c473573f71acf04a9794547c1c386d81f8291/core/src/main/java/hudson/model/WorkspaceCleanupThread.java#L142-L150

WorkspaceCleanupThread.java内のshouldBeDeleted()に判定を追加しているんですね。
実行中のJobがあればfalseを返して消す必要はないとしているようです。

なるほどなるほど

感想

自分が使っているOSSの変更を丁寧に追ってみるのって楽しいですね!

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3