Repository: tajo Updated Branches: refs/heads/branch-0.10.2 942dffd35 -> 18d84dde1
TAJO-1619: JDBC program is stuck after closing. (jihoon) Project: http://git-wip-us.apache.org/repos/asf/tajo/repo Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/18d84dde Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/18d84dde Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/18d84dde Branch: refs/heads/branch-0.10.2 Commit: 18d84dde193c3d2b5574300ff7dc6fd7c2ef0f04 Parents: 942dffd Author: Jihoon Son <[email protected]> Authored: Tue May 26 16:13:28 2015 +0900 Committer: Hyunsik Choi <[email protected]> Committed: Tue May 26 19:14:21 2015 -0700 ---------------------------------------------------------------------- CHANGES | 14 +++++++++++++- .../org/apache/tajo/client/SessionConnection.java | 14 ++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tajo/blob/18d84dde/CHANGES ---------------------------------------------------------------------- diff --git a/CHANGES b/CHANGES index c91c129..bbc9448 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,16 @@ Tajo Change Log -Release 0.10.1 - unreleased +Release 0.10.2 - Released + + NEW FEATURES + + IMPROVEMENT + + BUG FIXES + + TASKS + +Release 0.10.1 - Released NEW FEATURES @@ -42,6 +52,8 @@ Release 0.10.1 - unreleased TAJO-1621: Compilation error with hadoop 2.7.0. (jinho) + TAJO-1619: JDBC program is stuck after closing. (jihoon) + TAJO-1612: TestKillQuery occassionally fails. (hyunsik) TAJO-1440: Some tests fail in parallel test environment in TestKillQuery. http://git-wip-us.apache.org/repos/asf/tajo/blob/18d84dde/tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java ---------------------------------------------------------------------- diff --git a/tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java b/tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java index b0cc662..187af33 100644 --- a/tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java +++ b/tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java @@ -30,9 +30,11 @@ import org.apache.tajo.ipc.ClientProtos.ResultCode; import org.apache.tajo.ipc.ClientProtos.SessionUpdateResponse; import org.apache.tajo.ipc.TajoMasterClientProtocol; import org.apache.tajo.rpc.NettyClientBase; +import org.apache.tajo.rpc.RpcChannelFactory; import org.apache.tajo.rpc.RpcClientManager; import org.apache.tajo.rpc.ServerCallable; import org.apache.tajo.service.ServiceTracker; +import org.apache.tajo.util.CommonTestingUtil; import org.apache.tajo.util.KeyValueSet; import org.apache.tajo.util.ProtoUtil; @@ -46,6 +48,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; import static org.apache.tajo.ipc.ClientProtos.CreateSessionRequest; import static org.apache.tajo.ipc.ClientProtos.CreateSessionResponse; @@ -55,6 +58,8 @@ public class SessionConnection implements Closeable { private final Log LOG = LogFactory.getLog(TajoClientImpl.class); + private final static AtomicInteger connections = new AtomicInteger(); + final RpcClientManager manager; private final String baseDatabase; @@ -91,6 +96,7 @@ public class SessionConnection implements Closeable { this.baseDatabase = baseDatabase != null ? baseDatabase : null; this.serviceTracker = tracker; + connections.incrementAndGet(); } public Map<String, String> getClientSideSessionVars() { @@ -287,6 +293,14 @@ public class SessionConnection implements Closeable { // ignore } finally { RpcClientManager.cleanup(client); + if(connections.decrementAndGet() == 0) { + if (!System.getProperty(CommonTestingUtil.TAJO_TEST_KEY, "FALSE").equals(CommonTestingUtil.TAJO_TEST_TRUE)) { + RpcChannelFactory.shutdownGracefully(); + if (LOG.isDebugEnabled()) { + LOG.debug("RPC connection is closed"); + } + } + } } }
