diff --git a/core/src/main/java/hudson/model/Computer.java b/core/src/main/java/hudson/model/Computer.java index 073af962c8..94782b6189 100644 --- a/core/src/main/java/hudson/model/Computer.java +++ b/core/src/main/java/hudson/model/Computer.java @@ -195,6 +195,8 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces protected final Object statusChangeLock = new Object(); + private final Object logDirLock = new String("logDirLock"); + /** * Keeps track of stack traces to track the termination requests for this computer. * @@ -303,10 +305,12 @@ public /*transient*/ abstract class Computer extends Actionable implements Acces */ protected @NonNull File getLogDir() { File dir = new File(Jenkins.get().getRootDir(),"logs/slaves/"+nodeName); - try { - IOUtils.mkdirs(dir); - } catch (IOException x) { - LOGGER.log(Level.SEVERE, "Failed to create agent log directory " + dir, x); + synchronized (logDirLock) { + try { + IOUtils.mkdirs(dir); + } catch (IOException x) { + LOGGER.log(Level.SEVERE, "Failed to create agent log directory " + dir, x); + } } return dir; }