Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
org.apache.geode.distributed.internal.DistributionImpl.destroyMember creates a thread that will hold onto the DIstributesSystem/Cache through the DirectChannel it has for 3 seconds by default. It could be even longer if p2p.disconnectDelay is set to a value > 3000.
This can be a problem if the JVM is trying to reconnect since this old cache uses memory.
Instead of creating a new thread for every call of destroyMember, we should just have a single ScheduledExecutor that we schedule the background "closeEndpoint" with.
Also since all this code interacts with the DirectChannel all the logic about the executor and scheduling it should belong to DirectChannel, not the DistributionImpl.
When the DirectChannel has disconnect called on it, then it should get rid of all the tasks scheduled in the executor since they are no longer needed.
I think this issue has been around for a long time because the creation of the thread refers to fixing "Bug 37944" which is on old bug system that is not longer used for geode.
Attachments
Issue Links
- links to