sunhelly commented on PR #5288:
URL: https://github.com/apache/hbase/pull/5288#issuecomment-1620979147

   Thanks, @Apache9 , @bbeaudreault . 
   Under the current replication architecture, the replication requests are 
redirected by RSes. The dest cluster RSes act as hbase client to forward 
replicated edits to each other by calling ReplicationSink#batch. When using 
NettyRpcServer, the sink dest RS uses offheap byte buffer to keep the 
replicated edits and send RPCs to the RSes that the edits refer to, when 
encounters exception, the ServerCall run progress is not ended but the 
response.done() is called and the DBB will be released, then the next retries 
for the ReplicationSink#batch will use dirty DBB to replicate wrong edits.
   I think ServerCall#cleanup called when the rpc call is completed or failed 
is enough. While another cleanup in NettyRpcServerResponseEncoder is redundant 
and will cause every RS client release the DBB before the ServerCall is really 
completed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to