You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Darrel Schneider (Jira)" <ji...@apache.org> on 2022/05/25 22:23:00 UTC

[jira] [Created] (GEODE-10337) SocketCreatorFactory does not null out instance static

Darrel Schneider created GEODE-10337:
----------------------------------------

             Summary: SocketCreatorFactory does not null out instance static
                 Key: GEODE-10337
                 URL: https://issues.apache.org/jira/browse/GEODE-10337
             Project: Geode
          Issue Type: Bug
          Components: membership
            Reporter: Darrel Schneider


The SocketCreatorFactory has a static "instance" field that keeps the singleton factory. The factory has a reference in "distributionConfig" that ends up keeping the InternalDistributedSystem alive after disconnect.
It also has a static close method but the product never calls it.
To fix this leak do the following:
On InternalDistributedSystem.disconnect add to the end of it:
{code:java}
          if (!attemptingToReconnect) {
            SocketCreatorFactory.close();
          }
{code}
Also I think it would be good to change SocketCreatorFactory.getInstance to null out the static when close it called like so:

{code:java}
  private static synchronized SocketCreatorFactory getInstance(boolean closing) {
    SocketCreatorFactory result = instance;
    if (result == null && !closing) {
      result = new SocketCreatorFactory();
      instance = result;
    } else if (result != null && closing) {
      instance = null;
    }
    return result;
  }
{code}





--
This message was sent by Atlassian Jira
(v8.20.7#820007)