The error log of some of the slaves from <master>/computer/<slave>/log shows:

JNLP agent connected from /<IP_ADDRESS_OF_SLAVE>
<===[JENKINS REMOTING CAPACITY]===>Slave.jar version: 2.46
This is a Windows slave
ERROR: Connection terminated
java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@3f5d148b[name=<SLAVE_HOST_NAME>]
	at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208)
	at org.jenkinsci.remoting.nio.NioChannelHub.abortAll(NioChannelHub.java:667)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:644)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
	at java.lang.Thread.start0(Native Method)
	at java.lang.Thread.start(Thread.java:714)
	at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1371)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at com.google.common.util.concurrent.ForwardingExecutorService.submit(ForwardingExecutorService.java:110)
	at jenkins.util.InterceptingExecutorService.submit(InterceptingExecutorService.java:49)
	at hudson.remoting.SingleLaneExecutorService.execute(SingleLaneExecutorService.java:104)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:582)
	... 6 more
Failed to establish the connection with the slave <SLAVE_HOST_NAME>
hudson.remoting.ChannelClosedException: channel is already closed
	at hudson.remoting.Channel.send(Channel.java:540)
	at hudson.remoting.Request.call(Request.java:129)
	at hudson.remoting.Channel.call(Channel.java:742)
	at hudson.FilePath.act(FilePath.java:1009)
	at org.jenkinsci.plugins.envinject.EnvInjectComputerListener.getNewSlaveEnvironmentVariables(EnvInjectComputerListener.java:91)
	at org.jenkinsci.plugins.envinject.EnvInjectComputerListener.onOnline(EnvInjectComputerListener.java:141)
	at hudson.slaves.SlaveComputer.setChannel(SlaveComputer.java:503)
	at jenkins.slaves.JnlpSlaveAgentProtocol$Handler.jnlpConnect(JnlpSlaveAgentProtocol.java:120)
	at jenkins.slaves.DefaultJnlpSlaveReceiver.handle(DefaultJnlpSlaveReceiver.java:63)
	at jenkins.slaves.JnlpSlaveAgentProtocol2$Handler2.run(JnlpSlaveAgentProtocol2.java:57)
	at jenkins.slaves.JnlpSlaveAgentProtocol2.handle(JnlpSlaveAgentProtocol2.java:31)
	at hudson.TcpSlaveAgentListener$ConnectionHandler.run(TcpSlaveAgentListener.java:157)
Caused by: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@3f5d148b[name=<SLAVE_HOST_NAME>]
	at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208)
	at org.jenkinsci.remoting.nio.NioChannelHub.abortAll(NioChannelHub.java:667)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:644)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
	at java.lang.Thread.start0(Native Method)
	at java.lang.Thread.start(Thread.java:714)
	at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1371)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at com.google.common.util.concurrent.ForwardingExecutorService.submit(ForwardingExecutorService.java:110)
	at jenkins.util.InterceptingExecutorService.submit(InterceptingExecutorService.java:49)
	at hudson.remoting.SingleLaneExecutorService.execute(SingleLaneExecutorService.java:104)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:582)
	... 6 more
ERROR: Failed to install restarter
hudson.remoting.ChannelClosedException: channel is already closed
	at hudson.remoting.Channel.send(Channel.java:540)
	at hudson.remoting.Request.call(Request.java:129)
	at hudson.remoting.Channel.call(Channel.java:742)
	at jenkins.slaves.restarter.JnlpSlaveRestarterInstaller.install(JnlpSlaveRestarterInstaller.java:52)
	at jenkins.slaves.restarter.JnlpSlaveRestarterInstaller.access$000(JnlpSlaveRestarterInstaller.java:33)
	at jenkins.slaves.restarter.JnlpSlaveRestarterInstaller$1.call(JnlpSlaveRestarterInstaller.java:39)
	at jenkins.slaves.restarter.JnlpSlaveRestarterInstaller$1.call(JnlpSlaveRestarterInstaller.java:36)
	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@3f5d148b[name=<SLAVE_HOST_NAME>]
	at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208)
	at org.jenkinsci.remoting.nio.NioChannelHub.abortAll(NioChannelHub.java:667)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:644)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	... 4 more
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
	at java.lang.Thread.start0(Native Method)
	at java.lang.Thread.start(Thread.java:714)
	at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1371)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at com.google.common.util.concurrent.ForwardingExecutorService.submit(ForwardingExecutorService.java:110)
	at jenkins.util.InterceptingExecutorService.submit(InterceptingExecutorService.java:49)
	at hudson.remoting.SingleLaneExecutorService.execute(SingleLaneExecutorService.java:104)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:582)
	... 6 more
ERROR: Failed to update jenkins-slave.exe
java.io.IOException: remote file operation failed: <PATH_TO_JENKINS_SLAVE>\jenkins-slave.exe at hudson.remoting.Channel@b0137e6:<SLAVE_HOST_NAME>
	at hudson.FilePath.act(FilePath.java:916)
	at hudson.FilePath.act(FilePath.java:893)
	at hudson.FilePath.exists(FilePath.java:1325)
	at org.jenkinsci.modules.windows_slave_installer.SlaveExeUpdater$1.call(SlaveExeUpdater.java:46)
	at org.jenkinsci.modules.windows_slave_installer.SlaveExeUpdater$1.call(SlaveExeUpdater.java:37)
	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:745)
Caused by: hudson.remoting.ChannelClosedException: channel is already closed
	at hudson.remoting.Channel.send(Channel.java:540)
	at hudson.remoting.Request.call(Request.java:129)
	at hudson.remoting.Channel.call(Channel.java:742)
	at hudson.FilePath.act(FilePath.java:909)
	... 9 more
Caused by: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@3f5d148b[name=<SLAVE_HOST_NAME>]
	at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208)
	at org.jenkinsci.remoting.nio.NioChannelHub.abortAll(NioChannelHub.java:667)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:644)
	at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
	... 4 more
Caused by: java.lang.OutOfMemoryError: unable to create new native thread
	at java.lang.Thread.start0(Native Method)
	at java.lang.Thread.start(Thread.java:714)
	at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1371)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at com.google.common.util.concurrent.ForwardingExecutorService.submit(ForwardingExecutorService.java:110)
	at jenkins.util.InterceptingExecutorService.submit(InterceptingExecutorService.java:49)
	at hudson.remoting.SingleLaneExecutorService.execute(SingleLaneExecutorService.java:104)
	at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:110)
	at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:582)
	... 6 more