From 462838c25bdd93a94f606b88748e41f7752e0b8d Mon Sep 17 00:00:00 2001 From: Ankit Kishor Kailaswar Date: Mon, 23 Apr 2018 11:08:20 +0530 Subject: [PATCH] Kerberose changes in hive to refresh token after expiry interval --- .../hive/thrift/HadoopThriftAuthBridge.java | 18 ++++++++++++------ .../thrift/client/TUGIAssumingTransport.java | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/shims/common/src/main/java/org/apache/hadoop/hive/thrift/HadoopThriftAuthBridge.java b/shims/common/src/main/java/org/apache/hadoop/hive/thrift/HadoopThriftAuthBridge.java index 86eb46d5b3..fac836ecd4 100644 --- a/shims/common/src/main/java/org/apache/hadoop/hive/thrift/HadoopThriftAuthBridge.java +++ b/shims/common/src/main/java/org/apache/hadoop/hive/thrift/HadoopThriftAuthBridge.java @@ -640,12 +640,18 @@ public TUGIAssumingTransportFactory(TTransportFactory wrapped, UserGroupInformat @Override public TTransport getTransport(final TTransport trans) { - return ugi.doAs(new PrivilegedAction() { - @Override - public TTransport run() { - return wrapped.getTransport(trans); - } - }); + TTransport transport = null; + try { + transport = UserGroupInformation.getLoginUser().doAs(new PrivilegedAction() { + @Override + public TTransport run() { + return wrapped.getTransport(trans); + } + }); + } catch (IOException ex) { + throw new RuntimeException(ex); + } + return transport; } } } diff --git a/shims/common/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java b/shims/common/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java index fe1870681c..165883c58f 100644 --- a/shims/common/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java +++ b/shims/common/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java @@ -46,7 +46,8 @@ public TUGIAssumingTransport(TTransport wrapped, UserGroupInformation ugi) { @Override public void open() throws TTransportException { try { - ugi.doAs(new PrivilegedExceptionAction() { + + UserGroupInformation.getLoginUser().doAs(new PrivilegedExceptionAction() { public Void run() { try { wrapped.open();