Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-10331

DistributionImpl.destroyMember keeps cache alive for some number of seconds

    XMLWordPrintableJSON

Details

    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

          Activity

            People

              mivanac Mario Ivanac
              dschneider Darrel Schneider
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: