You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Bill Burcham (Jira)" <ji...@apache.org> on 2019/12/20 18:42:00 UTC

[jira] [Created] (GEODE-7613) deadlock initializing DistributionConfig.DEFAULT_MCAST_ADDRESS

Bill Burcham created GEODE-7613:
-----------------------------------

             Summary: deadlock initializing DistributionConfig.DEFAULT_MCAST_ADDRESS
                 Key: GEODE-7613
                 URL: https://issues.apache.org/jira/browse/GEODE-7613
             Project: Geode
          Issue Type: Improvement
          Components: core
            Reporter: Bill Burcham


In this JDK11 DUnit test run:

https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-main/jobs/DistributedTestOpenJDK11/builds/1402

there was a deadlock during {{TcpServerProductVersionDUnitTest testAllMessageTypes[OLD_CURRENT]}}

The problem is, this line in {{DistributionConfig}}:

{code}
  InetAddress DEFAULT_MCAST_ADDRESS = AbstractDistributionConfig._getDefaultMcastAddress();
{code}

It references a subtype of {{DistributionConfig}}, i.e. {{AbstractDistributionConfig}}. When one thread references {{DistributionConfig}} and another thread references {{AbstractDistributionConfig}}—both for the first time, there is a deadlock in class initialization.

The solution is to make initialization of the base type ({{DistributionConfig}}) independent of the derived type ({{AbstractDistributionConfig}}).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)