数ヶ月前に自分も経験した不具合の原因が修正されたという話です。
不具合の内容
Jenkinsのmaster/slave機能を使っていると、slaveのworkspace/以下でランダムにディレクトリが消される
突然ビルドが通らなくなって焦ります(焦りました)。
最新版で修正されたようです
変更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の変更を丁寧に追ってみるのって楽しいですね!