This is affecting some QA environments, but also live when trying to add lots of new slaves. This was not happening on previous Jenkins verison 2.73 with jobconfighistory plugin version 2.18. We are currently on Jenkins 2.164.2 and plugin version 2.21.
This seems to be a random failure, after 4 attempts of deploying to live last night to get the slaves on, I rebooted jenkins server and then all the slaves were created and deployment ran in fine.
If I look in the Jenkins Node folder I can see a new folder has been created but no config.xml alon with an entry in the config-history\nodes folder but again nothing in there. I can see the slave in jenkins for the new node as well and if I modify it It will then create a config.xml
java.lang.RuntimeException: Unable to create history entry for configuration file of node xxxxxx java.lang.RuntimeException: Unable to create history entry for configuration file of node xxxxxxxx at hudson.plugins.jobConfigHistory.FileHistoryDao.createNewHistoryEntry(FileHistoryDao.java:1033) at hudson.plugins.jobConfigHistory.FileHistoryDao.createNewHistoryEntryAndSaveConfig(FileHistoryDao.java:902) at hudson.plugins.jobConfigHistory.FileHistoryDao.createNewNode(FileHistoryDao.java:888) at hudson.plugins.jobConfigHistory.ComputerHistoryListener.onAdd(ComputerHistoryListener.java:89) at hudson.plugins.jobConfigHistory.ComputerHistoryListener.onConfigurationChange(ComputerHistoryListener.java:65) at hudson.model.AbstractCIBase.updateComputerList(AbstractCIBase.java:232) at jenkins.model.Jenkins.updateComputerList(Jenkins.java:1581) at jenkins.model.Nodes$2.run(Nodes.java:138) at hudson.model.Queue._withLock(Queue.java:1381) at hudson.model.Queue.withLock(Queue.java:1258) at jenkins.model.Nodes.addNode(Nodes.java:134) at jenkins.model.Jenkins.addNode(Jenkins.java:2089) at jenkins.model.Jenkins$addNode$10.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) at RemoteClass.run(RemoteClass:23) at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:263) at groovy.lang.GroovyShell.run(GroovyShell.java:518) at groovy.lang.GroovyShell.run(GroovyShell.java:497) at hudson.cli.GroovyCommand.run(GroovyCommand.java:89) at hudson.cli.CLICommand.main(CLICommand.java:283) at hudson.cli.CliManagerImpl.main(CliManagerImpl.java:95) at sun.reflect.GeneratedMethodAccessor520.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at hudson.remoting.RemoteInvocationHandler$RPCRequest.perform(RemoteInvocationHandler.java:929) at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:903) at hudson.remoting.RemoteInvocationHandler$RPCRequest.call(RemoteInvocationHandler.java:855) at hudson.remoting.UserRequest.perform(UserRequest.java:212) at hudson.remoting.UserRequest.perform(UserRequest.java:54) at hudson.remoting.Request$2.run(Request.java:369) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) at hudson.cli.CliManagerImpl$1.call(CliManagerImpl.java:66) at hudson.remoting.CallableDecoratorAdapter.call(CallableDecoratorAdapter.java:18) at hudson.remoting.CallableDecoratorList$1.call(CallableDecoratorList.java:21) at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46) at jenkins.security.ImpersonatingExecutorService$2.call(ImpersonatingExecutorService.java:71) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)