Code changed in jenkins
User: Vincent Latombe
Path:
core/src/main/java/jenkins/model/PeepholePermalink.java
http://jenkins-ci.org/commit/jenkins/f768fb7aed02bf4e944eff10cb2ba3007d98e560
Log:
JENKINS-20534 Avoid usage of temporary file to write symlink.
Creating a symlink is an atomic operation, and additionally
usage of tmp file + rename performs very badly on NTFS file
system because of the way the rename is tracked in the $MFT.
In case symbolic links are not supported, we still fallback to
a regular file.
(cherry picked from commit c0742b8bff9fe407e568da7ed860f30d9ea8aedc)
A significant number of threads seem to take time during rename of the cache file. Corresponding disk queues don't seem stressed at all, it only has a CPU impact.
java.lang.Thread.State: RUNNABLE at java.io.WinNTFileSystem.rename0(Native Method) at java.io.Win32FileSystem.rename(Win32FileSystem.java:535) at java.io.File.renameTo(File.java:1391) at jenkins.model.PeepholePermalink.writeSymlink(PeepholePermalink.java:185) at jenkins.model.PeepholePermalink.updateCache(PeepholePermalink.java:142) at jenkins.model.PeepholePermalink$RunListenerImpl.onCompleted(PeepholePermalink.java:219) at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:199) at hudson.maven.MavenBuild$ProxyImpl2.end(MavenBuild.java:574)