The close call shouldn't really be required with the idle time set to 0.
My idea was to actually remove the maxIdleTime setting once the root issue HADOOP-7317 is fixed. I'll let it be.
Should RPCClientFactoryPBImpl call RPC.stopProxy ? instead of putting it in all the service client impls? It's a PB specific factory, so putting it here should be ok.
No, that isn't possible. We need access to the proxy object in each impl. Bane of multiple layering in this part of the code.
Otherwise - the Exception in stopClient() should not be ignored.
Sure, I'll throw exception so that it is clear if somebody calles stopClient() for a protocol that doesn't implement it.
The client cache (removed by the patch) in ContainerLauncherImpl would still be useful in non-secure mode. This works for both though - so isn't high priority. Maybe a separate jira.
Sure, but helps to have the same implementation. Separate JIRA if someone needs it.
Forgot to mention - nice clean workaround to the rpc stop not working Thought it'd be way more involved.
Yeah, been running with this workaround since nearly a week but didn't put that in the patch in the hope of fixing the root cause. Turns out that is the only short term solution, alas.