You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by sa...@apache.org on 2017/04/21 00:40:48 UTC

[5/6] incubator-impala git commit: IMPALA-5182: Explicitly close connection to impalad on error from shell

IMPALA-5182: Explicitly close connection to impalad on error from shell

When using connections secured with SSL, a connection close comprises
of a bi-directional SSL_shutdown(). The second part of the
bi-directional shutdown requires that the client also close the socket
explicitly, and the server blocks till it gets the close
notification from the client.

This patch ensures that the above happens. Without this fix, the
impala-shell was found to hang over connections secured with SSL
when an error was encountered.

Change-Id: I814df93bbcd457ad3f96b4c1ef5d8b0ddd6d141f
Reviewed-on: http://gerrit.cloudera.org:8080/6587
Reviewed-by: Sailesh Mukil <sa...@cloudera.com>
Tested-by: Impala Public Jenkins


Project: http://git-wip-us.apache.org/repos/asf/incubator-impala/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-impala/commit/2a34076b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-impala/tree/2a34076b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-impala/diff/2a34076b

Branch: refs/heads/master
Commit: 2a34076b2db99bb83eb3e3929d310fcb10b1dd44
Parents: e0d1db5
Author: Sailesh Mukil <sa...@cloudera.com>
Authored: Thu Apr 6 22:32:03 2017 -0700
Committer: Impala Public Jenkins <im...@gerrit.cloudera.org>
Committed: Thu Apr 20 23:14:33 2017 +0000

----------------------------------------------------------------------
 shell/impala_shell.py | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-impala/blob/2a34076b/shell/impala_shell.py
----------------------------------------------------------------------
diff --git a/shell/impala_shell.py b/shell/impala_shell.py
index 00aff33..630a4e1 100755
--- a/shell/impala_shell.py
+++ b/shell/impala_shell.py
@@ -705,6 +705,8 @@ class ImpalaShell(cmd.Cmd):
         self.prompt = self.DISCONNECTED_PROMPT
     except Exception, e:
       print_to_stderr("Error connecting: %s, %s" % (type(e).__name__, e))
+      # A secure connection may still be open. So we explicitly close it.
+      self.imp_client.close_connection()
       # If a connection to another impalad failed while already connected
       # reset the prompt to disconnected.
       self.server_version = self.UNKNOWN_SERVER_VERSION