This is an automated email from the ASF dual-hosted git repository.

haxiaolin pushed a commit to branch branch-2.3
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.3 by this push:
     new 3267c1b  HBASE-25981 JVM crash when displaying RegionServer UI (#3364)
3267c1b is described below

commit 3267c1b815ce3c5c55bbebe2a713eb3e932ab2ef
Author: Xiaolin Ha <[email protected]>
AuthorDate: Wed Jun 9 18:11:18 2021 +0800

    HBASE-25981 JVM crash when displaying RegionServer UI (#3364)
    
    Signed-off-by: Duo Zhang <[email protected]>
---
 .../src/main/java/org/apache/hadoop/hbase/ipc/CallRunner.java     | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/CallRunner.java 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/CallRunner.java
index 48ee664..56b7ff0 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/CallRunner.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/CallRunner.java
@@ -159,6 +159,7 @@ public class CallRunner {
           sucessful = true;
         }
       }
+      this.status.markComplete("To send response");
       // return back the RPC request read BB we can do here. It is done by now.
       call.cleanup();
       // Set the response
@@ -166,8 +167,6 @@ public class CallRunner {
       CellScanner cells = resultPair != null ? resultPair.getSecond() : null;
       call.setResponse(param, cells, errorThrowable, error);
       call.sendResponseIfReady();
-      this.status.markComplete("Sent response");
-      this.status.pause("Waiting for a call");
     } catch (OutOfMemoryError e) {
       if (this.rpcServer.getErrorHandler() != null) {
         if (this.rpcServer.getErrorHandler().checkOOME(e)) {
@@ -191,6 +190,11 @@ public class CallRunner {
       if (!sucessful) {
         this.rpcServer.addCallSize(call.getSize() * -1);
       }
+
+      if (this.status.isRPCRunning()) {
+        this.status.markComplete("Call error");
+      }
+      this.status.pause("Waiting for a call");
       cleanup();
     }
   }

Reply via email to