Song Jiacheng has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/21041


Change subject: [Java] Fix concurrent problem while traverse the traces of 
KuduRpc.
......................................................................

[Java] Fix concurrent problem while traverse the traces of KuduRpc.

When the RPC request which is sent by java client times out, the RpcTimeoutTask 
is called by
HashedWheelTimeout. During the running of this task, KuduRpc#toString() is 
called. This method
will traverse the traces(a synchronizedList) without any protection, which lead 
to the task
throws exception and the callback could not be triggered.

So make a copy of the traces and then traverse the copy. This method is mostly 
called when some
exceptions are raised, so the influence of performance should be acceptable.

Change-Id: I1a642d93d01ebcfa05b01fe263023b5580d2542b
---
M java/kudu-client/src/main/java/org/apache/kudu/client/KuduRpc.java
1 file changed, 10 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/41/21041/1
--
To view, visit http://gerrit.cloudera.org:8080/21041
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I1a642d93d01ebcfa05b01fe263023b5580d2542b
Gerrit-Change-Number: 21041
Gerrit-PatchSet: 1
Gerrit-Owner: Song Jiacheng <songjiach...@thinkingdata.cn>

Reply via email to