[ https://issues.apache.org/jira/browse/HBASE-14771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15103263#comment-15103263 ]
Hudson commented on HBASE-14771: -------------------------------- FAILURE: Integrated in HBase-0.98-on-Hadoop-1.1 #1161 (See [https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/1161/]) Amend HBASE-14771 RpcServer#getRemoteAddress always returns null (apurtell: rev 8189b0f255023c6d2e10565275979cea23f87e7d) * hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java > RpcServer#getRemoteAddress always returns null > ---------------------------------------------- > > Key: HBASE-14771 > URL: https://issues.apache.org/jira/browse/HBASE-14771 > Project: HBase > Issue Type: Bug > Components: IPC/RPC > Affects Versions: 1.2.0 > Reporter: Abhishek Kumar > Assignee: Abhishek Kumar > Priority: Minor > Fix For: 2.0.0, 1.2.0, 1.3.0, 0.98.17 > > Attachments: 14771-V2.patch, HBASE-14771-V1.patch, > HBASE-14771-V2.patch, HBASE-14771-addendum-0.98.patch, HBASE-14771.patch > > > RpcServer.getRemoteAddress always returns null, because Call object is > getting initialized with null.This seems to be happening because of using > RpcServer.getRemoteIp() in Call object constructor before RpcServer thread > local 'CurCall' being set in CallRunner.run method: > {noformat} > // --- RpcServer.java --- > protected void processRequest(byte[] buf) throws IOException, > InterruptedException { > ................................. > // Call object getting initialized here with address > // obtained from RpcServer.getRemoteIp() > Call call = new Call(id, this.service, md, header, param, cellScanner, this, > responder, > totalRequestSize, traceInfo, RpcServer.getRemoteIp()); > scheduler.dispatch(new CallRunner(RpcServer.this, call)); > } > // getRemoteIp method gets address from threadlocal 'CurCall' which > // gets set in CallRunner.run and calling it before this as in above case, > will return null > // --- CallRunner.java --- > public void run() { > ......................... > Pair<Message, CellScanner> resultPair = null; > RpcServer.CurCall.set(call); > .............................. > } > // Using 'this.addr' in place of getRemoteIp method in RpcServer.java seems > to be fixing this issue > Call call = new Call(id, this.service, md, header, param, cellScanner, this, > responder, > totalRequestSize, traceInfo, this.addr); > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)