public class org.apache.hive.service.cli.session.SessionManager extends org.apache.hive.service.CompositeService
{
public static final java.lang.String INACTIVE_ERROR_MESSAGE;
private static final java.lang.String FAIL_CLOSE_ERROR_MESSAGE;
public static final java.lang.String HIVERCFILE;
private static final org.slf4j.Logger LOG;
private org.apache.hadoop.hive.conf.HiveConf hiveConf;
private final java.lang.Object sessionAddLock;
private boolean allowSessions;
private final java.util.Map handleToSession;
private final java.util.Map connectionsCount;
private int userLimit;
private int ipAddressLimit;
private int userIpAddressLimit;
private final org.apache.hive.service.cli.operation.OperationManager operationManager;
private org.apache.hive.service.server.KillQueryZookeeperManager killQueryZookeeperManager;
private java.util.Optional logManager;
private java.util.concurrent.ThreadPoolExecutor backgroundOperationPool;
private boolean isOperationLogEnabled;
private java.io.File operationLogRootDir;
private long checkInterval;
private long sessionTimeout;
private boolean checkOperation;
private volatile boolean shutdown;
private final org.apache.hive.service.server.HiveServer hiveServer;
private java.lang.String sessionImplWithUGIclassName;
private java.lang.String sessionImplclassName;
private org.apache.hadoop.hive.ql.cleanup.CleanupService cleanupService;
private final java.lang.Object timeoutCheckerLock;
private static java.lang.ThreadLocal threadLocalIpAddress;
private static java.lang.ThreadLocal threadLocalForwardedAddresses;
private static java.lang.ThreadLocal threadLocalUserName;
private static java.lang.ThreadLocal threadLocalProxyUserName;
public void <init>(org.apache.hive.service.server.HiveServer, boolean)
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.concurrent.ConcurrentHashMap v, v;
org.apache.hive.service.cli.operation.OperationManager v;
java.util.Optional v;
org.apache.hive.service.server.HiveServer v;
java.lang.Class v;
java.lang.Object v, v;
java.lang.String v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.server.HiveServer;
v := @parameter: boolean;
v = class "Lorg/apache/hive/service/cli/session/SessionManager;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getSimpleName()>();
specialinvoke v.<org.apache.hive.service.CompositeService: void <init>(java.lang.String)>(v);
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object sessionAddLock> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map handleToSession> = v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount> = v;
v = new org.apache.hive.service.cli.operation.OperationManager;
specialinvoke v.<org.apache.hive.service.cli.operation.OperationManager: void <init>()>();
v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager> = v;
v = staticinvoke <java.util.Optional: java.util.Optional empty()>();
v.<org.apache.hive.service.cli.session.SessionManager: java.util.Optional logManager> = v;
v = new java.lang.Object;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object timeoutCheckerLock> = v;
v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.HiveServer hiveServer2> = v;
v.<org.apache.hive.service.cli.session.SessionManager: boolean allowSessions> = v;
return;
}
public synchronized void init(org.apache.hadoop.hive.conf.HiveConf)
{
org.apache.hadoop.hive.common.metrics.common.Metrics v;
java.lang.Integer v, v, v;
org.apache.hadoop.hive.ql.cleanup.CleanupService v;
boolean v, v, v, v;
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hadoop.hive.ql.cleanup.EventualCleanupService v;
org.apache.hive.service.cli.operation.OperationManager v, v;
java.lang.Object[] v;
org.apache.hive.service.server.KillQueryZookeeperManager v, v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v;
org.slf4j.Logger v;
org.apache.hadoop.hive.conf.HiveConf v;
org.apache.hadoop.hive.ql.cleanup.SyncCleanupService v;
org.apache.hive.service.server.HiveServer v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hadoop.hive.conf.HiveConf;
v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf> = v;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_LOGGING_OPERATION_ENABLED>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: boolean getBoolVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
if v == 0 goto label;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void initOperationLogRootDir()>();
label:
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void createBackgroundOperationPool()>();
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager>;
virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: void addService(org.apache.hive.service.Service)>(v);
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_SUPPORT_DYNAMIC_SERVICE_DISCOVERY>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: boolean getBoolVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
if v == 0 goto label;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_ACTIVE_PASSIVE_HA_ENABLE>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: boolean getBoolVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
if v != 0 goto label;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_ZOOKEEPER_KILLQUERY_ENABLE>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: boolean getBoolVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
if v == 0 goto label;
v = new org.apache.hive.service.server.KillQueryZookeeperManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager>;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.HiveServer hiveServer2>;
specialinvoke v.<org.apache.hive.service.server.KillQueryZookeeperManager: void <init>(org.apache.hive.service.cli.operation.OperationManager,org.apache.hive.service.server.HiveServer)>(v, v);
v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.KillQueryZookeeperManager killQueryZookeeperManager> = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.KillQueryZookeeperManager killQueryZookeeperManager>;
virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: void addService(org.apache.hive.service.Service)>(v);
label:
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void initSessionImplClassName()>();
v = staticinvoke <org.apache.hadoop.hive.common.metrics.common.MetricsFactory: org.apache.hadoop.hive.common.metrics.common.Metrics getInstance()>();
if v == null goto label;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void registerOpenSesssionMetrics(org.apache.hadoop.hive.common.metrics.common.Metrics)>(v);
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void registerActiveSesssionMetrics(org.apache.hadoop.hive.common.metrics.common.Metrics)>(v);
label:
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_LIMIT_CONNECTIONS_PER_USER>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: int userLimit> = v;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_LIMIT_CONNECTIONS_PER_IPADDRESS>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: int ipAddressLimit> = v;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_LIMIT_CONNECTIONS_PER_USER_IPADDRESS>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: int userIpAddressLimit> = v;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.hive.service.cli.session.SessionManager: int userLimit>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: int ipAddressLimit>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: int userIpAddressLimit>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Connections limit are user: {} ipaddress: {} user-ipaddress: {}", v);
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_ASYNC_CLEANUP_SERVICE_THREAD_COUNT>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_ASYNC_CLEANUP_SERVICE_QUEUE_SIZE>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
if v <= 0 goto label;
v = new org.apache.hadoop.hive.ql.cleanup.EventualCleanupService;
specialinvoke v.<org.apache.hadoop.hive.ql.cleanup.EventualCleanupService: void <init>(int,int)>(v, v);
v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.ql.cleanup.CleanupService cleanupService> = v;
goto label;
label:
v = <org.apache.hadoop.hive.ql.cleanup.SyncCleanupService: org.apache.hadoop.hive.ql.cleanup.SyncCleanupService INSTANCE>;
v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.ql.cleanup.CleanupService cleanupService> = v;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.ql.cleanup.CleanupService cleanupService>;
interfaceinvoke v.<org.apache.hadoop.hive.ql.cleanup.CleanupService: void start()>();
specialinvoke v.<org.apache.hive.service.CompositeService: void init(org.apache.hadoop.hive.conf.HiveConf)>(v);
return;
}
private void registerOpenSesssionMetrics(org.apache.hadoop.hive.common.metrics.common.Metrics)
{
org.apache.hive.service.cli.session.SessionManager$2 v;
org.apache.hadoop.hive.common.metrics.common.Metrics v;
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.cli.session.SessionManager$1 v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hadoop.hive.common.metrics.common.Metrics;
v = new org.apache.hive.service.cli.session.SessionManager$1;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$1: void <init>(org.apache.hive.service.cli.session.SessionManager)>(v);
v = new org.apache.hive.service.cli.session.SessionManager$2;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$2: void <init>(org.apache.hive.service.cli.session.SessionManager)>(v);
interfaceinvoke v.<org.apache.hadoop.hive.common.metrics.common.Metrics: void addGauge(java.lang.String,org.apache.hadoop.hive.common.metrics.common.MetricsVariable)>("hs2_open_sessions", v);
interfaceinvoke v.<org.apache.hadoop.hive.common.metrics.common.Metrics: void addRatio(java.lang.String,org.apache.hadoop.hive.common.metrics.common.MetricsVariable,org.apache.hadoop.hive.common.metrics.common.MetricsVariable)>("hs2_avg_open_session_time", v, v);
return;
}
private void registerActiveSesssionMetrics(org.apache.hadoop.hive.common.metrics.common.Metrics)
{
org.apache.hadoop.hive.common.metrics.common.Metrics v;
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.cli.session.SessionManager$3 v;
org.apache.hive.service.cli.session.SessionManager$4 v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hadoop.hive.common.metrics.common.Metrics;
v = new org.apache.hive.service.cli.session.SessionManager$3;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$3: void <init>(org.apache.hive.service.cli.session.SessionManager)>(v);
v = new org.apache.hive.service.cli.session.SessionManager$4;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$4: void <init>(org.apache.hive.service.cli.session.SessionManager)>(v);
interfaceinvoke v.<org.apache.hadoop.hive.common.metrics.common.Metrics: void addGauge(java.lang.String,org.apache.hadoop.hive.common.metrics.common.MetricsVariable)>("hs2_active_sessions", v);
interfaceinvoke v.<org.apache.hadoop.hive.common.metrics.common.Metrics: void addRatio(java.lang.String,org.apache.hadoop.hive.common.metrics.common.MetricsVariable,org.apache.hadoop.hive.common.metrics.common.MetricsVariable)>("hs2_avg_active_session_time", v, v);
return;
}
private void initSessionImplClassName()
{
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v, v;
org.apache.hadoop.hive.conf.HiveConf v, v;
java.lang.String v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SESSION_IMPL_CLASSNAME>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: java.lang.String getVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplclassName> = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SESSION_IMPL_WITH_UGI_CLASSNAME>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: java.lang.String getVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplWithUGIclassName> = v;
return;
}
private void createBackgroundOperationPool()
{
org.apache.hadoop.hive.common.metrics.common.Metrics v;
boolean v;
org.apache.hive.service.cli.session.SessionManager v;
java.util.concurrent.LinkedBlockingQueue v;
java.util.concurrent.ThreadPoolExecutor v, v;
long v, v, v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v, v, v, v, v, v;
int v, v;
java.lang.String v, v, v;
org.apache.hive.service.cli.session.SessionManager$5 v;
org.slf4j.Logger v, v, v;
org.apache.hadoop.hive.conf.HiveConf v, v, v, v, v, v;
java.util.concurrent.TimeUnit v, v, v, v;
org.apache.hive.service.server.ThreadFactoryWithGarbageCleanup v;
org.apache.hive.service.cli.session.SessionManager$6 v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_ASYNC_EXEC_THREADS>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("HiveServer2: Background operation thread pool size: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_ASYNC_EXEC_WAIT_QUEUE_SIZE>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: int getIntVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("HiveServer2: Background operation thread wait queue size: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_ASYNC_EXEC_KEEPALIVE_TIME>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = staticinvoke <org.apache.hadoop.hive.conf.HiveConf: long getTimeVar(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hive.conf.HiveConf$ConfVars,java.util.concurrent.TimeUnit)>(v, v, v);
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("HiveServer2: Background operation thread keepalive time: \u seconds");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = new java.util.concurrent.LinkedBlockingQueue;
specialinvoke v.<java.util.concurrent.LinkedBlockingQueue: void <init>(int)>(v);
v = new java.util.concurrent.ThreadPoolExecutor;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = new org.apache.hive.service.server.ThreadFactoryWithGarbageCleanup;
specialinvoke v.<org.apache.hive.service.server.ThreadFactoryWithGarbageCleanup: void <init>(java.lang.String)>("HiveServer2-Background-Pool");
specialinvoke v.<java.util.concurrent.ThreadPoolExecutor: void <init>(int,int,long,java.util.concurrent.TimeUnit,java.util.concurrent.BlockingQueue,java.util.concurrent.ThreadFactory)>(v, v, v, v, v, v);
v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool> = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: void allowCoreThreadTimeOut(boolean)>(1);
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_SESSION_CHECK_INTERVAL>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = staticinvoke <org.apache.hadoop.hive.conf.HiveConf: long getTimeVar(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hive.conf.HiveConf$ConfVars,java.util.concurrent.TimeUnit)>(v, v, v);
v.<org.apache.hive.service.cli.session.SessionManager: long checkInterval> = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_IDLE_SESSION_TIMEOUT>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit MILLISECONDS>;
v = staticinvoke <org.apache.hadoop.hive.conf.HiveConf: long getTimeVar(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hive.conf.HiveConf$ConfVars,java.util.concurrent.TimeUnit)>(v, v, v);
v.<org.apache.hive.service.cli.session.SessionManager: long sessionTimeout> = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_IDLE_SESSION_CHECK_OPERATION>;
v = staticinvoke <org.apache.hadoop.hive.conf.HiveConf: boolean getBoolVar(org.apache.hadoop.conf.Configuration,org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v, v);
v.<org.apache.hive.service.cli.session.SessionManager: boolean checkOperation> = v;
v = staticinvoke <org.apache.hadoop.hive.common.metrics.common.MetricsFactory: org.apache.hadoop.hive.common.metrics.common.Metrics getInstance()>();
if v == null goto label;
v = new org.apache.hive.service.cli.session.SessionManager$5;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$5: void <init>(org.apache.hive.service.cli.session.SessionManager,java.util.concurrent.BlockingQueue)>(v, v);
interfaceinvoke v.<org.apache.hadoop.hive.common.metrics.common.Metrics: void addGauge(java.lang.String,org.apache.hadoop.hive.common.metrics.common.MetricsVariable)>("exec_async_queue_size", v);
v = new org.apache.hive.service.cli.session.SessionManager$6;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$6: void <init>(org.apache.hive.service.cli.session.SessionManager)>(v);
interfaceinvoke v.<org.apache.hadoop.hive.common.metrics.common.Metrics: void addGauge(java.lang.String,org.apache.hadoop.hive.common.metrics.common.MetricsVariable)>("exec_async_pool_size", v);
label:
return;
}
private void initOperationLogRootDir()
{
boolean v, v, v, v, v;
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.cli.operation.OperationManager v;
java.util.Optional v;
org.apache.hive.service.cli.operation.OperationLogManager v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v, v;
org.apache.hadoop.hive.conf.HiveConf v, v;
java.io.IOException v;
java.io.File v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = new java.io.File;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_LOGGING_OPERATION_LOG_LOCATION>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: java.lang.String getVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir> = v;
v.<org.apache.hive.service.cli.session.SessionManager: boolean isOperationLogEnabled> = 1;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v != 0 goto label;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The operation log root directory exists, but it is not a directory: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: boolean isOperationLogEnabled> = 0;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v != 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: boolean mkdirs()>();
if v != 0 goto label;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Unable to create operation log root directory: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: boolean isOperationLogEnabled> = 0;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: boolean isOperationLogEnabled>;
if v == 0 goto label;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Operation log root directory is created: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
staticinvoke <org.apache.commons.io.FileUtils: void forceDeleteOnExit(java.io.File)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to schedule cleanup HS2 operation logging root dir: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = new org.apache.hive.service.cli.operation.OperationLogManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager>;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
specialinvoke v.<org.apache.hive.service.cli.operation.OperationLogManager: void <init>(org.apache.hive.service.cli.operation.OperationManager,org.apache.hadoop.hive.conf.HiveConf)>(v, v);
v = staticinvoke <java.util.Optional: java.util.Optional of(java.lang.Object)>(v);
v.<org.apache.hive.service.cli.session.SessionManager: java.util.Optional logManager> = v;
label:
return;
catch java.io.IOException from label to label with label;
}
public synchronized void start()
{
org.apache.hive.service.cli.session.SessionManager v;
long v;
byte v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
specialinvoke v.<org.apache.hive.service.CompositeService: void start()>();
v = v.<org.apache.hive.service.cli.session.SessionManager: long checkInterval>;
v = v cmp 0L;
if v <= 0 goto label;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void startTimeoutChecker()>();
label:
return;
}
public org.apache.hadoop.hive.ql.cleanup.CleanupService getCleanupService()
{
org.apache.hadoop.hive.ql.cleanup.CleanupService v;
org.apache.hive.service.cli.session.SessionManager v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.ql.cleanup.CleanupService cleanupService>;
return v;
}
private void startTimeoutChecker()
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.concurrent.ThreadPoolExecutor v;
long v, v;
org.apache.hive.service.cli.session.SessionManager$7 v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: long checkInterval>;
v = staticinvoke <java.lang.Math: long max(long,long)>(v, 3000L);
v = new org.apache.hive.service.cli.session.SessionManager$7;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$7: void <init>(org.apache.hive.service.cli.session.SessionManager,long)>(v, v);
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: void execute(java.lang.Runnable)>(v);
return;
}
private void shutdownTimeoutChecker()
{
java.lang.Throwable v;
org.apache.hive.service.cli.session.SessionManager v;
java.lang.Object v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v.<org.apache.hive.service.cli.session.SessionManager: boolean shutdown> = 1;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object timeoutCheckerLock>;
entermonitor v;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object timeoutCheckerLock>;
virtualinvoke v.<java.lang.Object: void notify()>();
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
public synchronized void decommission()
{
org.apache.hive.service.cli.session.SessionManager v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: void allowSessions(boolean)>(0);
specialinvoke v.<org.apache.hive.service.CompositeService: void decommission()>();
return;
}
public synchronized void stop()
{
java.util.concurrent.ThreadPoolExecutor v, v, v, v;
long v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v;
org.apache.hadoop.hive.ql.cleanup.CleanupService v;
java.lang.String v;
org.apache.hive.service.cli.session.SessionManager v;
org.slf4j.Logger v;
org.apache.hadoop.hive.conf.HiveConf v;
java.util.concurrent.TimeUnit v, v;
java.util.function.Consumer v;
java.lang.InterruptedException v;
java.util.Optional v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
specialinvoke v.<org.apache.hive.service.CompositeService: void stop()>();
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void shutdownTimeoutChecker()>();
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
if v == null goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: void shutdown()>();
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.ql.cleanup.CleanupService cleanupService>;
interfaceinvoke v.<org.apache.hadoop.hive.ql.cleanup.CleanupService: void shutdown()>();
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_ASYNC_EXEC_SHUTDOWN_TIMEOUT>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: long getTimeVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars,java.util.concurrent.TimeUnit)>(v, v);
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit SECONDS>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: boolean awaitTermination(long,java.util.concurrent.TimeUnit)>(v, v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("HIVE_SERVER2_ASYNC_EXEC_SHUTDOWN_TIMEOUT = \u seconds has been exceeded. RUNNING background operations will be shut down");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: java.util.List shutdownNow()>();
v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool> = null;
label:
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void cleanupLoggingRootDir()>();
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Optional logManager>;
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_stop_0__20: java.util.function.Consumer bootstrap$()>();
virtualinvoke v.<java.util.Optional: void ifPresent(java.util.function.Consumer)>(v);
return;
catch java.lang.InterruptedException from label to label with label;
}
private void cleanupLoggingRootDir()
{
org.apache.hive.service.cli.session.SessionManager v;
org.slf4j.Logger v;
java.io.File v, v;
java.lang.Exception v;
java.lang.String v, v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: boolean isOperationLogEnabled>;
if v == 0 goto label;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
staticinvoke <org.apache.commons.io.FileUtils: void forceDelete(java.io.File)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
v = virtualinvoke v.<java.io.File: java.lang.String getAbsolutePath()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to cleanup root dir of HS2 logging: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>(v, v);
label:
return;
catch java.lang.Exception from label to label with label;
}
public org.apache.hive.service.cli.SessionHandle openSession(org.apache.hive.service.rpc.thrift.TProtocolVersion, java.lang.String, java.lang.String, java.lang.String, java.util.Map) throws org.apache.hive.service.cli.HiveSQLException
{
org.apache.hive.service.rpc.thrift.TProtocolVersion v;
org.apache.hive.service.cli.SessionHandle v;
org.apache.hive.service.cli.session.SessionManager v;
java.util.Map v;
java.lang.String v, v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.rpc.thrift.TProtocolVersion;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.SessionHandle openSession(org.apache.hive.service.rpc.thrift.TProtocolVersion,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,java.lang.String)>(v, v, v, v, v, 0, null);
return v;
}
public org.apache.hive.service.cli.SessionHandle openSession(org.apache.hive.service.rpc.thrift.TProtocolVersion, java.lang.String, java.lang.String, java.lang.String, java.util.Map, boolean, java.lang.String) throws org.apache.hive.service.cli.HiveSQLException
{
org.apache.hive.service.rpc.thrift.TProtocolVersion v;
org.apache.hive.service.cli.SessionHandle v;
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.cli.session.HiveSession v;
java.util.Map v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.rpc.thrift.TProtocolVersion;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.session.HiveSession createSession(org.apache.hive.service.cli.SessionHandle,org.apache.hive.service.rpc.thrift.TProtocolVersion,java.lang.String,java.lang.String,java.lang.String,java.util.Map,boolean,java.lang.String)>(null, v, v, v, v, v, v, v);
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: org.apache.hive.service.cli.SessionHandle getSessionHandle()>();
return v;
}
public org.apache.hive.service.cli.session.HiveSession createSession(org.apache.hive.service.cli.SessionHandle, org.apache.hive.service.rpc.thrift.TProtocolVersion, java.lang.String, java.lang.String, java.lang.String, java.util.Map, boolean, java.lang.String) throws org.apache.hive.service.cli.HiveSQLException
{
java.util.Map v, v;
org.apache.hive.service.cli.session.HiveSessionImplwithUGI v;
org.apache.hive.service.cli.session.SessionManager v;
java.lang.Exception v, v, v, v, v;
java.lang.Throwable v, v;
java.lang.Object[] v, v;
java.lang.reflect.Constructor v, v;
org.apache.hadoop.security.UserGroupInformation v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.apache.hive.service.rpc.thrift.TProtocolVersion v;
java.lang.Class[] v, v;
java.io.File v;
boolean v, v, v, v, v;
org.apache.hive.service.cli.SessionHandle v, v, v;
org.apache.hive.service.cli.session.HiveSession v;
org.apache.hive.service.cli.operation.OperationManager v;
java.util.List v;
int v;
org.apache.hive.service.cli.HiveSQLException v, v, v, v, v, v;
org.apache.hive.service.cli.session.HiveSessionImpl v;
org.slf4j.Logger v, v, v, v;
org.apache.hadoop.hive.conf.HiveConf v, v, v, v;
java.lang.Class v, v;
java.lang.Object v, v, v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.cli.SessionHandle;
v := @parameter: org.apache.hive.service.rpc.thrift.TProtocolVersion;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.Map;
v := @parameter: boolean;
v := @parameter: java.lang.String;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object sessionAddLock>;
entermonitor v;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: boolean allowSessions>;
if v != 0 goto label;
v = new org.apache.hive.service.cli.HiveSQLException;
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String)>("Cannot open sessions on an inactive HS2 instance, or the HS2 server leader is not ready; please use service discovery to connect the server leader again");
throw v;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager: java.util.List getForwardedAddresses()>();
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void incrementConnections(java.lang.String,java.lang.String,java.util.List)>(v, v, v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplWithUGIclassName>;
if v != null goto label;
v = new org.apache.hive.service.cli.session.HiveSessionImplwithUGI;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
specialinvoke v.<org.apache.hive.service.cli.session.HiveSessionImplwithUGI: void <init>(org.apache.hive.service.cli.SessionHandle,org.apache.hive.service.rpc.thrift.TProtocolVersion,java.lang.String,java.lang.String,org.apache.hadoop.hive.conf.HiveConf,java.lang.String,java.lang.String,java.util.List)>(v, v, v, v, v, v, v, v);
goto label;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplWithUGIclassName>;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>(v);
v = newarray (java.lang.Class)[8];
v[0] = class "Lorg/apache/hive/service/cli/SessionHandle;";
v[1] = class "Lorg/apache/hive/service/rpc/thrift/TProtocolVersion;";
v[2] = class "Ljava/lang/String;";
v[3] = class "Ljava/lang/String;";
v[4] = class "Lorg/apache/hadoop/hive/conf/HiveConf;";
v[5] = class "Ljava/lang/String;";
v[6] = class "Ljava/lang/String;";
v[7] = class "Ljava/util/List;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[8];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v[4] = v;
v[5] = v;
v[6] = v;
v[7] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.hive.service.cli.HiveSQLException;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplWithUGIclassName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Cannot initialize session class:\u0001");
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<org.apache.hive.service.cli.session.HiveSessionImplwithUGI: org.apache.hadoop.security.UserGroupInformation getSessionUgi()>();
v = staticinvoke <org.apache.hive.service.cli.session.HiveSessionProxy: org.apache.hive.service.cli.session.HiveSession getProxy(org.apache.hive.service.cli.session.HiveSession,org.apache.hadoop.security.UserGroupInformation)>(v, v);
virtualinvoke v.<org.apache.hive.service.cli.session.HiveSessionImplwithUGI: void setProxySession(org.apache.hive.service.cli.session.HiveSession)>(v);
goto label;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplclassName>;
if v != null goto label;
v = new org.apache.hive.service.cli.session.HiveSessionImpl;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
specialinvoke v.<org.apache.hive.service.cli.session.HiveSessionImpl: void <init>(org.apache.hive.service.cli.SessionHandle,org.apache.hive.service.rpc.thrift.TProtocolVersion,java.lang.String,java.lang.String,org.apache.hadoop.hive.conf.HiveConf,java.lang.String,java.util.List)>(v, v, v, v, v, v, v);
goto label;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplclassName>;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>(v);
v = newarray (java.lang.Class)[7];
v[0] = class "Lorg/apache/hive/service/cli/SessionHandle;";
v[1] = class "Lorg/apache/hive/service/rpc/thrift/TProtocolVersion;";
v[2] = class "Ljava/lang/String;";
v[3] = class "Ljava/lang/String;";
v[4] = class "Lorg/apache/hadoop/hive/conf/HiveConf;";
v[5] = class "Ljava/lang/String;";
v[6] = class "Ljava/util/List;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[7];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v[4] = v;
v[5] = v;
v[6] = v;
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
label:
goto label;
label:
v := @caughtexception;
v = new org.apache.hive.service.cli.HiveSQLException;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String sessionImplclassName>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Cannot initialize session class:\u0001");
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: void setSessionManager(org.apache.hive.service.cli.session.SessionManager)>(v);
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager>;
interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: void setOperationManager(org.apache.hive.service.cli.operation.OperationManager)>(v);
label:
interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: void open(java.util.Map)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Failed to open session", v);
v = new org.apache.hive.service.cli.HiveSQLException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to open new session: \u0001");
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: boolean isOperationLogEnabled>;
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.io.File operationLogRootDir>;
interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: void setOperationLogSessionDir(java.io.File)>(v);
label:
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void executeSessionHooks(org.apache.hive.service.cli.session.HiveSession)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Failed to execute session hooks", v);
v = new org.apache.hive.service.cli.HiveSQLException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to execute session hooks: \u0001");
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
v = 0;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object sessionAddLock>;
entermonitor v;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: boolean allowSessions>;
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map handleToSession>;
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: org.apache.hive.service.cli.SessionHandle getSessionHandle()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = 1;
label:
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
if v != 0 goto label;
label:
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void closeSessionInternal(org.apache.hive.service.cli.session.HiveSession)>(v);
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Throwable)>("Failed to close the session opened during an HA state change; ignoring", v);
label:
v = new org.apache.hive.service.cli.HiveSQLException;
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String)>("Cannot close the session opened during the HA state change time");
throw v;
label:
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: org.apache.hive.service.cli.SessionHandle getSessionHandle()>();
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: int getOpenSessionCount()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hive.service.cli.SessionHandle,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Session opened, \u, current sessions:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Exception from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
private void incrementConnections(java.lang.String, java.lang.String, java.util.List) throws org.apache.hive.service.cli.HiveSQLException
{
java.util.function.Function v, v, v;
java.util.Map v, v, v;
java.lang.String v, v, v, v, v;
boolean v, v, v;
org.apache.hive.service.cli.HiveSQLException v;
org.apache.hive.service.cli.session.SessionManager v;
org.slf4j.Logger v;
java.util.List v;
java.lang.Object v, v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String getOriginClientIpAddress(java.lang.String,java.util.List)>(v, v);
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String anyViolations(java.lang.String,java.lang.String)>(v, v);
if v != null goto label;
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerUser(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_incrementConnections_1__23: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerIpAddress(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_incrementConnections_2__22: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
label:
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerUserIpAddress(java.lang.String,java.lang.String)>(v, v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_incrementConnections_3__21: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void increment()>();
goto label;
label:
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
v = new org.apache.hive.service.cli.HiveSQLException;
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private java.lang.String getOriginClientIpAddress(java.lang.String, java.util.List)
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.List v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v := @parameter: java.util.List;
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
label:
return v;
label:
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
return v;
}
private void decrementConnections(org.apache.hive.service.cli.session.HiveSession)
{
java.util.function.BiFunction v, v, v;
java.util.Map v, v, v;
java.lang.String v, v, v, v;
boolean v, v, v;
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.cli.session.HiveSession v;
java.util.List v;
java.lang.Object v, v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.cli.session.HiveSession;
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: java.lang.String getUserName()>();
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: java.lang.String getIpAddress()>();
v = interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSession: java.util.List getForwardedAddresses()>();
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: java.lang.String getOriginClientIpAddress(java.lang.String,java.util.List)>(v, v);
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerUser(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_decrementConnections_4__26: java.util.function.BiFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void decrement()>();
label:
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerIpAddress(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_decrementConnections_5__25: java.util.function.BiFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void decrement()>();
label:
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerUserIpAddress(java.lang.String,java.lang.String)>(v, v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = staticinvoke <org.apache.hive.service.cli.session.SessionManager$lambda_decrementConnections_6__24: java.util.function.BiFunction bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfPresent(java.lang.Object,java.util.function.BiFunction)>(v, v);
virtualinvoke v.<java.util.concurrent.atomic.LongAdder: void decrement()>();
label:
return;
}
private java.lang.String anyViolations(java.lang.String, java.lang.String)
{
int v, v, v, v, v, v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v, v, v, v;
org.apache.hive.service.cli.session.SessionManager v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerUser(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: int userLimit>;
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean withinLimits(java.lang.String,int)>(v, v);
if v != 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: int userLimit>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Connection limit per user reached (user: \u limit: \u)");
return v;
label:
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerIpAddress(java.lang.String)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: int ipAddressLimit>;
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean withinLimits(java.lang.String,int)>(v, v);
if v != 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: int ipAddressLimit>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Connection limit per ipaddress reached (ipaddress: \u limit: \u)");
return v;
label:
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean trackConnectionsPerUserIpAddress(java.lang.String,java.lang.String)>(v, v);
if v == 0 goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001:\u0001");
v = v.<org.apache.hive.service.cli.session.SessionManager: int userIpAddressLimit>;
v = specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: boolean withinLimits(java.lang.String,int)>(v, v);
if v != 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: int userIpAddressLimit>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String,int)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Connection limit per user:ipaddress reached (user:ipaddress: \u0001:\u limit: \u)");
return v;
label:
return null;
}
private boolean trackConnectionsPerUserIpAddress(java.lang.String, java.lang.String)
{
org.apache.hive.service.cli.session.SessionManager v;
int v;
java.lang.String v, v;
boolean v, v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v.<org.apache.hive.service.cli.session.SessionManager: int userIpAddressLimit>;
if v <= 0 goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean trackConnectionsPerIpAddress(java.lang.String)
{
org.apache.hive.service.cli.session.SessionManager v;
int v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v = v.<org.apache.hive.service.cli.session.SessionManager: int ipAddressLimit>;
if v <= 0 goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean trackConnectionsPerUser(java.lang.String)
{
org.apache.hive.service.cli.session.SessionManager v;
int v;
java.lang.String v;
boolean v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v = v.<org.apache.hive.service.cli.session.SessionManager: int userLimit>;
if v <= 0 goto label;
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private boolean withinLimits(java.lang.String, int)
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.Map v, v;
int v, v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.String;
v := @parameter: int;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = interfaceinvoke v.<java.util.Map: boolean containsKey(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map connectionsCount>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = virtualinvoke v.<java.util.concurrent.atomic.LongAdder: int intValue()>();
if v < v goto label;
return 0;
label:
return 1;
}
public void closeSession(org.apache.hive.service.cli.SessionHandle) throws org.apache.hive.service.cli.HiveSQLException
{
java.lang.Throwable v;
org.apache.hive.service.cli.HiveSQLException v;
org.apache.hive.service.cli.SessionHandle v;
org.apache.hive.service.cli.session.SessionManager v;
org.slf4j.Logger v;
java.util.Map v;
int v;
java.lang.Object v, v;
java.lang.String v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.cli.SessionHandle;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object sessionAddLock>;
entermonitor v;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map handleToSession>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object remove(java.lang.Object)>(v);
if v != null goto label;
v = new org.apache.hive.service.cli.HiveSQLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hive.service.cli.SessionHandle)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Session does not exist: \u0001");
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String)>(v);
throw v;
label:
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: int getOpenSessionCount()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hive.service.cli.SessionHandle,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Session closed, \u, current sessions:\u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void closeSessionInternal(org.apache.hive.service.cli.session.HiveSession)>(v);
return;
catch java.lang.Throwable from label to label with label;
}
private void closeSessionInternal(org.apache.hive.service.cli.session.HiveSession) throws org.apache.hive.service.cli.HiveSQLException
{
org.apache.hive.service.cli.session.SessionManager v;
org.slf4j.Logger v;
org.apache.hadoop.hive.conf.HiveConf v;
org.apache.hive.service.cli.session.HiveSession v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v;
int v;
org.apache.hive.service.server.HiveServer v, v;
org.apache.hive.service.cli.session.SessionManager$8 v;
boolean v, v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.cli.session.HiveSession;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager: void decrementConnections(org.apache.hive.service.cli.session.HiveSession)>(v);
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.HiveServer hiveServer2>;
if v == null goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars HIVE_SERVER2_SUPPORT_DYNAMIC_SERVICE_DISCOVERY>;
v = virtualinvoke v.<org.apache.hadoop.hive.conf.HiveConf: boolean getBoolVar(org.apache.hadoop.hive.conf.HiveConf$ConfVars)>(v);
if v == 0 goto label;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.HiveServer hiveServer2>;
v = virtualinvoke v.<org.apache.hive.service.server.HiveServer2: boolean isDeregisteredWithZooKeeper()>();
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hive.service.cli.session.SessionManager: int getOpenSessionCount()>();
if v != 0 goto label;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("This instance of HiveServer has been removed from the list of server instances available for dynamic service discovery. The last client session has ended - will shutdown now.");
v = new org.apache.hive.service.cli.session.SessionManager$8;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$8: void <init>(org.apache.hive.service.cli.session.SessionManager)>(v);
virtualinvoke v.<java.lang.Thread: void start()>();
label:
return;
}
public org.apache.hive.service.cli.session.HiveSession getSession(org.apache.hive.service.cli.SessionHandle) throws org.apache.hive.service.cli.HiveSQLException
{
org.apache.hive.service.cli.HiveSQLException v;
org.apache.hive.service.cli.SessionHandle v;
org.apache.hive.service.cli.session.SessionManager v;
java.util.Map v;
java.lang.Object v;
java.lang.String v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.cli.SessionHandle;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map handleToSession>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.apache.hive.service.cli.HiveSQLException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hive.service.cli.SessionHandle)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid SessionHandle: \u0001");
specialinvoke v.<org.apache.hive.service.cli.HiveSQLException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
public org.apache.hive.service.cli.operation.OperationManager getOperationManager()
{
org.apache.hive.service.cli.operation.OperationManager v;
org.apache.hive.service.cli.session.SessionManager v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager>;
return v;
}
public java.util.Optional getLogManager()
{
java.util.Optional v;
org.apache.hive.service.cli.session.SessionManager v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Optional logManager>;
return v;
}
public org.apache.hive.service.server.KillQueryZookeeperManager getKillQueryZookeeperManager()
{
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.server.KillQueryZookeeperManager v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.KillQueryZookeeperManager killQueryZookeeperManager>;
return v;
}
public static void setIpAddress(java.lang.String)
{
java.lang.ThreadLocal v;
java.lang.String v;
v := @parameter: java.lang.String;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalIpAddress>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
return;
}
public static void clearIpAddress()
{
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalIpAddress>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
return;
}
public static java.lang.String getIpAddress()
{
java.lang.Object v;
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalIpAddress>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
return v;
}
public static void setForwardedAddresses(java.util.List)
{
java.lang.ThreadLocal v;
java.util.List v;
v := @parameter: java.util.List;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalForwardedAddresses>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
return;
}
public static void clearForwardedAddresses()
{
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalForwardedAddresses>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
return;
}
public static java.util.List getForwardedAddresses()
{
java.lang.Object v;
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalForwardedAddresses>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
return v;
}
public static void setUserName(java.lang.String)
{
java.lang.ThreadLocal v;
java.lang.String v;
v := @parameter: java.lang.String;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalUserName>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
return;
}
public static void clearUserName()
{
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalUserName>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
return;
}
public static java.lang.String getUserName()
{
java.lang.Object v;
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalUserName>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
return v;
}
public static void setProxyUserName(java.lang.String)
{
java.lang.ThreadLocal v;
org.slf4j.Logger v;
java.lang.String v, v;
v := @parameter: java.lang.String;
v = <org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("setting proxy user name based on query param to: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalProxyUserName>;
virtualinvoke v.<java.lang.ThreadLocal: void set(java.lang.Object)>(v);
return;
}
public static java.lang.String getProxyUserName()
{
java.lang.Object v;
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalProxyUserName>;
v = virtualinvoke v.<java.lang.ThreadLocal: java.lang.Object get()>();
return v;
}
public static void clearProxyUserName()
{
java.lang.ThreadLocal v;
v = <org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalProxyUserName>;
virtualinvoke v.<java.lang.ThreadLocal: void remove()>();
return;
}
private void executeSessionHooks(org.apache.hive.service.cli.session.HiveSession) throws java.lang.Exception
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.Iterator v;
org.apache.hadoop.hive.conf.HiveConf v;
org.apache.hadoop.hive.ql.hooks.HookContext$HookType v;
org.apache.hive.service.cli.session.HiveSession v;
java.util.List v;
org.apache.hive.service.cli.session.HiveSessionHookContextImpl v;
java.lang.Object v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: org.apache.hive.service.cli.session.HiveSession;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hadoop.hive.conf.HiveConf hiveConf>;
v = <org.apache.hadoop.hive.ql.hooks.HookContext$HookType: org.apache.hadoop.hive.ql.hooks.HookContext$HookType HIVE_SERVER2_SESSION_HOOK>;
v = staticinvoke <org.apache.hadoop.hive.ql.hooks.HookUtils: java.util.List readHooksFromConf(org.apache.hadoop.hive.conf.HiveConf,org.apache.hadoop.hive.ql.hooks.HookContext$HookType)>(v, v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new org.apache.hive.service.cli.session.HiveSessionHookContextImpl;
specialinvoke v.<org.apache.hive.service.cli.session.HiveSessionHookContextImpl: void <init>(org.apache.hive.service.cli.session.HiveSession)>(v);
interfaceinvoke v.<org.apache.hive.service.cli.session.HiveSessionHook: void run(org.apache.hive.service.cli.session.HiveSessionHookContext)>(v);
goto label;
label:
return;
}
public java.util.concurrent.Future submitBackgroundOperation(java.lang.Runnable)
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.concurrent.Future v;
java.util.concurrent.ThreadPoolExecutor v;
java.lang.Runnable v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: java.lang.Runnable;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.concurrent.ThreadPoolExecutor backgroundOperationPool>;
v = virtualinvoke v.<java.util.concurrent.ThreadPoolExecutor: java.util.concurrent.Future submit(java.lang.Runnable)>(v);
return v;
}
public java.util.Collection getOperations()
{
org.apache.hive.service.cli.operation.OperationManager v;
org.apache.hive.service.cli.session.SessionManager v;
java.util.Collection v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.cli.operation.OperationManager operationManager>;
v = virtualinvoke v.<org.apache.hive.service.cli.operation.OperationManager: java.util.Collection getOperations()>();
return v;
}
public java.util.Collection getSessions()
{
org.apache.hive.service.cli.session.SessionManager v;
java.util.Collection v, v;
java.util.Map v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map handleToSession>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = staticinvoke <java.util.Collections: java.util.Collection unmodifiableCollection(java.util.Collection)>(v);
return v;
}
public int getOpenSessionCount()
{
int v;
org.apache.hive.service.cli.session.SessionManager v;
java.util.Map v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.util.Map handleToSession>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
public java.lang.String getHiveServer2HostName() throws java.lang.Exception
{
org.apache.hive.service.cli.session.SessionManager v;
org.apache.hive.service.server.HiveServer v, v;
java.lang.String v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.HiveServer hiveServer2>;
if v != null goto label;
return null;
label:
v = v.<org.apache.hive.service.cli.session.SessionManager: org.apache.hive.service.server.HiveServer hiveServer2>;
v = virtualinvoke v.<org.apache.hive.service.server.HiveServer2: java.lang.String getServerHost()>();
return v;
}
public void allowSessions(boolean)
{
java.lang.Throwable v;
org.apache.hive.service.cli.session.SessionManager v;
java.lang.Object v;
boolean v;
v := @this: org.apache.hive.service.cli.session.SessionManager;
v := @parameter: boolean;
v = v.<org.apache.hive.service.cli.session.SessionManager: java.lang.Object sessionAddLock>;
entermonitor v;
label:
v.<org.apache.hive.service.cli.session.SessionManager: boolean allowSessions> = v;
exitmonitor v;
label:
goto label;
label:
v := @caughtexception;
exitmonitor v;
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
}
static void <clinit>()
{
java.lang.ThreadLocal v, v;
org.slf4j.Logger v;
org.apache.hive.service.cli.session.SessionManager$10 v;
org.apache.hive.service.cli.session.SessionManager$9 v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/hive/service/CompositeService;");
<org.apache.hive.service.cli.session.SessionManager: org.slf4j.Logger LOG> = v;
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
<org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalIpAddress> = v;
v = new java.lang.ThreadLocal;
specialinvoke v.<java.lang.ThreadLocal: void <init>()>();
<org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalForwardedAddresses> = v;
v = new org.apache.hive.service.cli.session.SessionManager$9;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$9: void <init>()>();
<org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalUserName> = v;
v = new org.apache.hive.service.cli.session.SessionManager$10;
specialinvoke v.<org.apache.hive.service.cli.session.SessionManager$10: void <init>()>();
<org.apache.hive.service.cli.session.SessionManager: java.lang.ThreadLocal threadLocalProxyUserName> = v;
return;
}
}