[ https://issues.apache.org/jira/browse/HBASE-14771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Abhishek Kumar updated HBASE-14771: ----------------------------------- Attachment: HBASE-14771.patch patch attached , pls review the same, thanks > 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 > Attachments: 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)