[ 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)