You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Owen Nichols (Jira)" <ji...@apache.org> on 2022/06/22 20:46:01 UTC

[jira] [Closed] (GEODE-8956) LocatorMembershipListenerImpl has unconstrained thread creation that can crash a machine

     [ https://issues.apache.org/jira/browse/GEODE-8956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Owen Nichols closed GEODE-8956.
-------------------------------

> LocatorMembershipListenerImpl has unconstrained thread creation that can crash a machine
> ----------------------------------------------------------------------------------------
>
>                 Key: GEODE-8956
>                 URL: https://issues.apache.org/jira/browse/GEODE-8956
>             Project: Geode
>          Issue Type: Bug
>          Components: wan
>            Reporter: Bruce J Schuchardt
>            Assignee: Mario Ivanac
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.15.0
>
>
> In reviewing PR 6013 I found that a simple change meant to resolve a difficult problem lead to unrestrained thread growth, sometimes topping out at over 5000 threads, in a locator that often crashed the host machine.  The thread growth was due to this method in LocatorMembershipListenerImpl:
> {code:java}
> Thread buildLocatorsDistributorThread(DistributionLocatorId localLocatorId,
>     Map<Integer, Set<DistributionLocatorId>> remoteLocators, DistributionLocatorId joiningLocator,
>     int joiningLocatorDistributedSystemId) {
>   Runnable distributeLocatorsRunnable =
>       new DistributeLocatorsRunnable(config.getMemberTimeout(), tcpClient, localLocatorId,
>           remoteLocators, joiningLocator, joiningLocatorDistributedSystemId);
>   ThreadFactory threadFactory = new LoggingThreadFactory(LOCATORS_DISTRIBUTOR_THREAD_NAME, true);
>   return threadFactory.newThread(distributeLocatorsRunnable);
> }
> {code}
> This should probably be performed in an Executor with a reasonable max-threads limit based on the number of local and remote-locators in the DistributionConfig.



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