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]
