From 5bb55fb7e026378745a5f2c40cbfabd594010bd7 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 29 May 2014 11:48:37 -0400
Subject: [PATCH] Fix thread exhaustion in SSH daemon
---
src/main/java/com/gitblit/transport/ssh/commands/SshCommandFactory.java | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/commands/SshCommandFactory.java b/src/main/java/com/gitblit/transport/ssh/commands/SshCommandFactory.java
index 599d94b..fa4b916 100644
--- a/src/main/java/com/gitblit/transport/ssh/commands/SshCommandFactory.java
+++ b/src/main/java/com/gitblit/transport/ssh/commands/SshCommandFactory.java
@@ -40,7 +40,6 @@
import com.gitblit.Keys;
import com.gitblit.manager.IGitblit;
import com.gitblit.transport.ssh.SshDaemonClient;
-import com.gitblit.utils.IdGenerator;
import com.gitblit.utils.WorkQueue;
import com.google.common.util.concurrent.Atomics;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@@ -48,15 +47,16 @@
public class SshCommandFactory implements CommandFactory {
private static final Logger logger = LoggerFactory.getLogger(SshCommandFactory.class);
+ private final WorkQueue workQueue;
private final IGitblit gitblit;
private final ScheduledExecutorService startExecutor;
private final ExecutorService destroyExecutor;
- public SshCommandFactory(IGitblit gitblit, IdGenerator idGenerator) {
+ public SshCommandFactory(IGitblit gitblit, WorkQueue workQueue) {
this.gitblit = gitblit;
+ this.workQueue = workQueue;
int threads = gitblit.getSettings().getInteger(Keys.git.sshCommandStartThreads, 2);
- WorkQueue workQueue = new WorkQueue(idGenerator);
startExecutor = workQueue.createQueue(threads, "SshCommandStart");
destroyExecutor = Executors.newSingleThreadExecutor(
new ThreadFactoryBuilder()
@@ -70,7 +70,7 @@
}
public RootDispatcher createRootDispatcher(SshDaemonClient client, String commandLine) {
- return new RootDispatcher(gitblit, client, commandLine);
+ return new RootDispatcher(gitblit, client, commandLine, workQueue);
}
@Override
--
Gitblit v1.9.1