[ 
https://issues.apache.org/jira/browse/SOLR-16154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17532383#comment-17532383
 ] 

Kevin Risden commented on SOLR-16154:
-------------------------------------

So I looked a bit further to make sure I wasn't missing anything:

https://github.com/apache/solr/pull/805/files#diff-5b63503605ede4384429e74d1fa0c410adc5da8f3246e8c36e49feff2f3ea692R2767

{code:java}
cc.getCoreZkRegisterExecutorService().submit(work);
{code}

This change submits the listeners to an executor service. So its now a managed 
thread. cc is the corecontainer that gets closed/shutdown as well somewhere (I 
didn't track down exactly where).

Now I wanted to see where the executor was closed / shutdown:
* 
https://github.com/apache/solr/blob/main/solr/core/src/java/org/apache/solr/core/CoreContainer.java#L306
* zksys is shutdown here: 
https://github.com/apache/solr/blob/main/solr/core/src/java/org/apache/solr/core/CoreContainer.java#L1125
* 
https://github.com/apache/solr/blob/main/solr/core/src/java/org/apache/solr/core/ZkContainer.java#L244

The 60s I referred to is in the executor shutdown specifically the await 
termination: 
https://github.com/apache/solr/blob/main/solr/solrj/src/java/org/apache/solr/common/util/ExecutorUtil.java#L86

So as far as I can tell this stuff gets all shutdown in the right order. By 
putting the thread on the executor, it prevents new threads on shutdown 
(shutdown on executor prevents new threads from being submitted) and waits 60s 
(due to await termination) for those threads to finish. Then the rest of ZK 
gets shutdown which means we shouldn't have ZK retries since those ZK threads 
should have already terminated.

Hope that helps :D

> ZKEventListenerThread leaks from tests
> --------------------------------------
>
>                 Key: SOLR-16154
>                 URL: https://issues.apache.org/jira/browse/SOLR-16154
>             Project: Solr
>          Issue Type: Test
>            Reporter: Mike Drob
>            Assignee: Mike Drob
>            Priority: Major
>          Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Seen repeatedly on Jenkins.
> {noformat}
> com.carrotsearch.randomizedtesting.ThreadLeakError: 1 thread leaked from 
> SUITE scope at 
> org.apache.solr.handler.designer.TestSchemaDesignerSettingsDAO: 
>    1) Thread[id=1089, name=ZKEventListenerThread, state=TIMED_WAITING, 
> group=TGRP-TestSchemaDesignerSettingsDAO]
>         at java.base@18/java.lang.Thread.sleep(Native Method)
>         at 
> app//org.apache.solr.common.cloud.ZkCmdExecutor.retryDelay(ZkCmdExecutor.java:161)
>         at 
> app//org.apache.solr.common.cloud.ZkCmdExecutor.retryOperation(ZkCmdExecutor.java:82)
>         at 
> app//org.apache.solr.common.cloud.SolrZkClient.getData(SolrZkClient.java:361)
>         at 
> app//org.apache.solr.cloud.ZkSolrResourceLoader.openResource(ZkSolrResourceLoader.java:75)
>         at 
> app//org.apache.lucene.analysis.AbstractAnalysisFactory.getLines(AbstractAnalysisFactory.java:302)
>         at 
> app//org.apache.lucene.analysis.AbstractAnalysisFactory.getWordSet(AbstractAnalysisFactory.java:293)
>         at 
> app//org.apache.lucene.analysis.en.AbstractWordsFileFilterFactory.inform(AbstractWordsFileFilterFactory.java:88)
>         at 
> app//org.apache.solr.core.SolrResourceLoader.informAware(SolrResourceLoader.java:762)
>         at 
> app//org.apache.solr.schema.ManagedIndexSchema.informResourceLoaderAwareObjectsInChain(ManagedIndexSchema.java:1470)
>         at 
> app//org.apache.solr.schema.ManagedIndexSchema.informResourceLoaderAwareObjectsForFieldType(ManagedIndexSchema.java:1319)
>         at 
> app//org.apache.solr.schema.ManagedIndexSchema.postReadInform(ManagedIndexSchema.java:1307)
>         at 
> app//org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:654)
>         at 
> app//org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:188)
>         at 
> app//org.apache.solr.schema.ManagedIndexSchema.<init>(ManagedIndexSchema.java:119)
>         at 
> app//org.apache.solr.schema.ManagedIndexSchemaFactory.create(ManagedIndexSchemaFactory.java:279)
>         at 
> app//org.apache.solr.schema.ManagedIndexSchemaFactory.create(ManagedIndexSchemaFactory.java:51)
>         at 
> app//org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:342)
>         at 
> app//org.apache.solr.core.ConfigSetService.lambda$loadConfigSet$0(ConfigSetService.java:253)
>         at 
> app//org.apache.solr.core.ConfigSetService$$Lambda$632/0x0000000801137758.get(Unknown
>  Source)
>         at app//org.apache.solr.core.ConfigSet.<init>(ConfigSet.java:49)
>         at 
> app//org.apache.solr.core.ConfigSetService.loadConfigSet(ConfigSetService.java:249)
>         at 
> app//org.apache.solr.core.CoreContainer.reload(CoreContainer.java:1850)
>         at 
> app//org.apache.solr.core.SolrCore.lambda$getConfListener$21(SolrCore.java:3394)
>         at 
> app//org.apache.solr.core.SolrCore$$Lambda$742/0x00000008011f2560.run(Unknown 
> Source)
>         at 
> app//org.apache.solr.cloud.ZkController.lambda$fireEventListeners$18(ZkController.java:2761)
>         at 
> app//org.apache.solr.cloud.ZkController$$Lambda$1153/0x00000008014e8938.run(Unknown
>  Source)
>         at java.base@18/java.lang.Thread.run(Thread.java:833)
>       at __randomizedtesting.SeedInfo.seed([DE9B93CA6D75B373]:0)
> {noformat}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to