[ https://issues.apache.org/jira/browse/HADOOP-7607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aaron T. Myers updated HADOOP-7607: ----------------------------------- Attachment: hadoop-7607.0.patch Here's a patch which addresses the issue. I chose to log and swallow IllegalArgumentException to maintain backward compatibility with the previous implementation of RPC.stopProxy, which was just a no-op if you called it with a non-proxy object. This change will require a few changes to HDFS and MR as well, since RPC.stopProxy can now throw an IOE. If folks are OK with this direction, I'll file those JIRAs and address them there. Alternatively, we could make RPC.stopProxy also swallow IOE, but that seems unwise to me. > Simplify the RPC proxy cleanup process > -------------------------------------- > > Key: HADOOP-7607 > URL: https://issues.apache.org/jira/browse/HADOOP-7607 > Project: Hadoop Common > Issue Type: Improvement > Components: ipc > Affects Versions: 0.24.0 > Reporter: Aaron T. Myers > Assignee: Aaron T. Myers > Fix For: 0.24.0 > > Attachments: hadoop-7607.0.patch > > > The process to clean up an RPC proxy object is to call RPC.stopProxy, which looks up the RPCEngine previously associated with the interface which that proxy object provides and calls RPCEngine.stopProxy passing in the proxy object. Every concrete implementation of RPCEngine.stopProxy then looks up the invocation handler associated with the proxy object and calls close() on that invocation handler. > This process can be simplified by cutting out the steps of looking up the previously-registered RPCEngine, and instead just having RPC.stopProxy directly look up the invocation handler for the proxy object and call close() on it. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira