From 763f073f41e3eaa9ecd11c6ec0b76234739272aa Mon Sep 17 00:00:00 2001 From: Jing Zhao Date: Mon, 16 Dec 2013 21:57:47 +0000 Subject: [PATCH] HADOOP-10106. Incorrect thread name in RPC log messages. Contributed by Ming Ma. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1551369 13f79535-47bb-0310-9956-ffa450edef68 --- .../hadoop-common/CHANGES.txt | 2 + .../java/org/apache/hadoop/ipc/Server.java | 44 +++++++++---------- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt index 449beed3e5..dc0c5d0623 100644 --- a/hadoop-common-project/hadoop-common/CHANGES.txt +++ b/hadoop-common-project/hadoop-common/CHANGES.txt @@ -470,6 +470,8 @@ Release 2.4.0 - UNRELEASED HADOOP-10058. TestMetricsSystemImpl#testInitFirstVerifyStopInvokedImmediately fails on trunk (Chen He via jeagles) + HADOOP-10106. Incorrect thread name in RPC log messages. (Ming Ma via jing9) + Release 2.3.0 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java index 7f56940890..ac798595dd 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/Server.java @@ -551,14 +551,14 @@ private class Reader extends Thread { @Override public void run() { - LOG.info("Starting " + getName()); + LOG.info("Starting " + Thread.currentThread().getName()); try { doRunLoop(); } finally { try { readSelector.close(); } catch (IOException ioe) { - LOG.error("Error closing read selector in " + this.getName(), ioe); + LOG.error("Error closing read selector in " + Thread.currentThread().getName(), ioe); } } } @@ -589,7 +589,7 @@ private synchronized void doRunLoop() { } } catch (InterruptedException e) { if (running) { // unexpected -- log it - LOG.info(getName() + " unexpectedly interrupted", e); + LOG.info(Thread.currentThread().getName() + " unexpectedly interrupted", e); } } catch (IOException ex) { LOG.error("Error in Reader", ex); @@ -620,7 +620,7 @@ void shutdown() { @Override public void run() { - LOG.info(getName() + ": starting"); + LOG.info(Thread.currentThread().getName() + ": starting"); SERVER.set(Server.this); connectionManager.startIdleScan(); while (running) { @@ -652,7 +652,7 @@ public void run() { closeCurrentConnection(key, e); } } - LOG.info("Stopping " + this.getName()); + LOG.info("Stopping " + Thread.currentThread().getName()); synchronized (this) { try { @@ -710,14 +710,14 @@ void doRead(SelectionKey key) throws InterruptedException { try { count = c.readAndProcess(); } catch (InterruptedException ieo) { - LOG.info(getName() + ": readAndProcess caught InterruptedException", ieo); + LOG.info(Thread.currentThread().getName() + ": readAndProcess caught InterruptedException", ieo); throw ieo; } catch (Exception e) { // a WrappedRpcServerException is an exception that has been sent // to the client, so the stacktrace is unnecessary; any other // exceptions are unexpected internal server errors and thus the // stacktrace should be logged - LOG.info(getName() + ": readAndProcess from client " + + LOG.info(Thread.currentThread().getName() + ": readAndProcess from client " + c.getHostAddress() + " threw exception [" + e + "]", (e instanceof WrappedRpcServerException) ? null : e); count = -1; //so that the (count < 0) block is executed @@ -740,7 +740,7 @@ synchronized void doStop() { try { acceptChannel.socket().close(); } catch (IOException e) { - LOG.info(getName() + ":Exception in closing listener socket. " + e); + LOG.info(Thread.currentThread().getName() + ":Exception in closing listener socket. " + e); } } for (Reader r : readers) { @@ -773,16 +773,16 @@ private class Responder extends Thread { @Override public void run() { - LOG.info(getName() + ": starting"); + LOG.info(Thread.currentThread().getName() + ": starting"); SERVER.set(Server.this); try { doRunLoop(); } finally { - LOG.info("Stopping " + this.getName()); + LOG.info("Stopping " + Thread.currentThread().getName()); try { writeSelector.close(); } catch (IOException ioe) { - LOG.error("Couldn't close write selector in " + this.getName(), ioe); + LOG.error("Couldn't close write selector in " + Thread.currentThread().getName(), ioe); } } } @@ -803,7 +803,7 @@ private void doRunLoop() { doAsyncWrite(key); } } catch (IOException e) { - LOG.info(getName() + ": doAsyncWrite threw exception " + e); + LOG.info(Thread.currentThread().getName() + ": doAsyncWrite threw exception " + e); } } long now = Time.now(); @@ -918,7 +918,7 @@ private boolean processResponse(LinkedList responseQueue, call = responseQueue.removeFirst(); SocketChannel channel = call.connection.channel; if (LOG.isDebugEnabled()) { - LOG.debug(getName() + ": responding to " + call); + LOG.debug(Thread.currentThread().getName() + ": responding to " + call); } // // Send as much data as we can in the non-blocking fashion @@ -937,7 +937,7 @@ private boolean processResponse(LinkedList responseQueue, done = false; // more calls pending to be sent. } if (LOG.isDebugEnabled()) { - LOG.debug(getName() + ": responding to " + call + LOG.debug(Thread.currentThread().getName() + ": responding to " + call + " Wrote " + numBytes + " bytes."); } } else { @@ -965,7 +965,7 @@ private boolean processResponse(LinkedList responseQueue, } } if (LOG.isDebugEnabled()) { - LOG.debug(getName() + ": responding to " + call + LOG.debug(Thread.currentThread().getName() + ": responding to " + call + " Wrote partial " + numBytes + " bytes."); } } @@ -973,7 +973,7 @@ private boolean processResponse(LinkedList responseQueue, } } finally { if (error && call != null) { - LOG.warn(getName()+", call " + call + ": output error"); + LOG.warn(Thread.currentThread().getName()+", call " + call + ": output error"); done = true; // error. no more data for this channel. closeConnection(call.connection); } @@ -2011,7 +2011,7 @@ public Handler(int instanceNumber) { @Override public void run() { - LOG.debug(getName() + ": starting"); + LOG.debug(Thread.currentThread().getName() + ": starting"); SERVER.set(Server.this); ByteArrayOutputStream buf = new ByteArrayOutputStream(INITIAL_RESP_BUF_SIZE); @@ -2019,7 +2019,7 @@ public void run() { try { final Call call = callQueue.take(); // pop the queue; maybe blocked here if (LOG.isDebugEnabled()) { - LOG.debug(getName() + ": " + call + " for RpcKind " + call.rpcKind); + LOG.debug(Thread.currentThread().getName() + ": " + call + " for RpcKind " + call.rpcKind); } String errorClass = null; String error = null; @@ -2052,7 +2052,7 @@ public Writable run() throws Exception { if (e instanceof UndeclaredThrowableException) { e = e.getCause(); } - String logMsg = getName() + ", call " + call + ": error: " + e; + String logMsg = Thread.currentThread().getName() + ", call " + call + ": error: " + e; if (e instanceof RuntimeException || e instanceof Error) { // These exception types indicate something is probably wrong // on the server side, as opposed to just a normal exceptional @@ -2101,13 +2101,13 @@ public Writable run() throws Exception { } } catch (InterruptedException e) { if (running) { // unexpected -- log it - LOG.info(getName() + " unexpectedly interrupted", e); + LOG.info(Thread.currentThread().getName() + " unexpectedly interrupted", e); } } catch (Exception e) { - LOG.info(getName() + " caught an exception", e); + LOG.info(Thread.currentThread().getName() + " caught an exception", e); } } - LOG.debug(getName() + ": exiting"); + LOG.debug(Thread.currentThread().getName() + ": exiting"); } }