diff --git a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java index 65062aeed4..26c7359d0c 100644 --- a/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java +++ b/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java @@ -793,7 +793,6 @@ public int run(String[] args) throws Exception { } catch (CommandProcessorException e) { return e.getResponseCode(); } finally { - ss.resetThreadName(); ss.close(); } } diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index 76c6e39a48..566dad9012 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -5481,9 +5481,8 @@ public String getLogIdVar(String defaultValue) { retval = defaultValue; } if (retval.length() > LOG_PREFIX_LENGTH) { - LOG.warn("The original log id prefix is {} has been truncated to {}", retval, - retval.substring(0, LOG_PREFIX_LENGTH - 1)); retval = retval.substring(0, LOG_PREFIX_LENGTH - 1); + LOG.warn("The original log id prefix is {} has been truncated to {}", retval, retval); } return retval; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java index de6aebbe59..4bcef095ed 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java @@ -453,10 +453,10 @@ public String getSessionId() { public void updateThreadName() { final String sessionId = getSessionId(); - final String logPrefix = getConf().getLogIdVar(sessionId); + final String logPrefix = getConf().getLogIdVar(sessionId).trim(); final String currThreadName = Thread.currentThread().getName(); if (!currThreadName.contains(logPrefix)) { - final String newThreadName = logPrefix + " " + currThreadName; + final String newThreadName = String.join(" ", logPrefix, currThreadName); LOG.debug("Updating thread name to {}", newThreadName); Thread.currentThread().setName(newThreadName); } @@ -464,12 +464,15 @@ public void updateThreadName() { public void resetThreadName() { final String sessionId = getSessionId(); - final String logPrefix = getConf().getLogIdVar(sessionId); + final String logPrefix = getConf().getLogIdVar(sessionId).trim(); final String currThreadName = Thread.currentThread().getName(); if (currThreadName.contains(logPrefix)) { - final String[] names = currThreadName.split(logPrefix); - LOG.debug("Resetting thread name to {}", names[names.length - 1]); - Thread.currentThread().setName(names[names.length - 1].trim()); + final String[] names = currThreadName.split(" "); + final List threadNames = new ArrayList<>(Arrays.asList(names)); + threadNames.remove(logPrefix); + final String newThreadName = String.join(" ", threadNames); + LOG.debug("Resetting thread name to {}", newThreadName); + Thread.currentThread().setName(newThreadName); } } @@ -1807,6 +1810,7 @@ public void close() throws IOException { // removes the threadlocal variables, closes underlying HMS connection Hive.closeCurrent(); } + resetThreadName(); progressMonitor = null; } diff --git a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java index 81d6a7e095..d501a12c4e 100644 --- a/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java +++ b/service/src/java/org/apache/hive/service/cli/session/HiveSessionImpl.java @@ -785,7 +785,6 @@ public void close() throws HiveSQLException { hiveHist.closeStream(); } try { - sessionState.resetThreadName(); sessionState.close(); } finally { sessionState = null; @@ -795,7 +794,6 @@ public void close() throws HiveSQLException { } finally { if (sessionState != null) { try { - sessionState.resetThreadName(); sessionState.close(); } catch (Throwable t) { LOG.warn("Error closing session", t);