[ https://issues.apache.org/jira/browse/HBASE-20972?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16574230#comment-16574230 ]
Guanghao Zhang commented on HBASE-20972: ---------------------------------------- {code:java} if (!this.rpcServer.scheduler.dispatch(new CallRunner(this.rpcServer, call))) { this.rpcServer.callQueueSizeInBytes.add(-1 * call.getSize()); this.rpcServer.metrics.exception(RpcServer.CALL_QUEUE_TOO_BIG_EXCEPTION); call.setResponse(null, null, RpcServer.CALL_QUEUE_TOO_BIG_EXCEPTION, "Call queue is full on " + this.rpcServer.server.getServerName() + ", too many items queued ?"); call.sendResponseIfReady(); } {code} This is not a bug now. It already reduce the call size when can't dispatch the call. > Fix call queue buffer size leaking bug > -------------------------------------- > > Key: HBASE-20972 > URL: https://issues.apache.org/jira/browse/HBASE-20972 > Project: HBase > Issue Type: Bug > Components: IPC/RPC > Affects Versions: 2.1.0, 2.0.0, 2.2.0 > Reporter: Xiaolin Ha > Assignee: Xiaolin Ha > Priority: Major > Attachments: HBASE-20972.branch-2.0.001.patch, > HBASE-20972.branch-2.0.002.patch, HBASE-20972.master.001.patch, > HBASE-20972.master.002.patch > > > Call queue size is the currently queued and running Calls bytes size. It gets > incremented after we parse a call and before we add it to the queue of calls > for the scheduler to use. It get decremented after we have 'run' the Call. > When setting up a call, total size of it is added. So when a new call can not > be dispatched by BlockingQueue full, the call queue size should be > decremented. We shouldn't add size of rejected calls to the call queue size. -- This message was sent by Atlassian JIRA (v7.6.3#76005)