lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Markus Heiden (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (SOLR-7803) Classloading deadlock in TrieField
Date Fri, 17 Jul 2015 12:51:04 GMT

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

Markus Heiden edited comment on SOLR-7803 at 7/17/15 12:50 PM:
---------------------------------------------------------------

Stacktrace showing the TrieField thread. All other threads hang at at java.lang.Class.forName0(Native
Method). As mentioned above this looks more like LUCENE-5573 and not like LUCENE-6482.

"coreLoadExecutor-6-thread-20-processing-{node_name=localhost:18080_solr}" #480 prio=5 os_prio=31
tid=0x00007f9110653000 nid=0x8f03 in Object.wait() [0x000000012b8f2000]
   java.lang.Thread.State: RUNNABLE
	at org.apache.solr.schema.TrieField.<clinit>(TrieField.java:90)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:485)
	at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:560)
	at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:525)
	at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:518)
	at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:90)
	at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:52)
	at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:152)
	at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:489)
	at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:175)
	at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)
	at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69)
	at org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:102)
	at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:74)
	at org.apache.solr.core.CoreContainer.create(CoreContainer.java:635)
	at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:381)
	at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:375)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:148)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)


was (Author: markus_heiden):
Stacktrace showing the TrieField thread. All other threads hang at at java.lang.Class.forName0(Native
Method).

"coreLoadExecutor-6-thread-20-processing-{node_name=localhost:18080_solr}" #480 prio=5 os_prio=31
tid=0x00007f9110653000 nid=0x8f03 in Object.wait() [0x000000012b8f2000]
   java.lang.Thread.State: RUNNABLE
	at org.apache.solr.schema.TrieField.<clinit>(TrieField.java:90)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:485)
	at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:560)
	at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:525)
	at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:518)
	at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:90)
	at org.apache.solr.schema.FieldTypePluginLoader.create(FieldTypePluginLoader.java:52)
	at org.apache.solr.util.plugin.AbstractPluginLoader.load(AbstractPluginLoader.java:152)
	at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:489)
	at org.apache.solr.schema.IndexSchema.<init>(IndexSchema.java:175)
	at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)
	at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69)
	at org.apache.solr.core.ConfigSetService.createIndexSchema(ConfigSetService.java:102)
	at org.apache.solr.core.ConfigSetService.getConfig(ConfigSetService.java:74)
	at org.apache.solr.core.CoreContainer.create(CoreContainer.java:635)
	at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:381)
	at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:375)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$1.run(ExecutorUtil.java:148)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

> Classloading deadlock in TrieField
> ----------------------------------
>
>                 Key: SOLR-7803
>                 URL: https://issues.apache.org/jira/browse/SOLR-7803
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 5.2.1
>         Environment: OSX, JDK8u45
>            Reporter: Markus Heiden
>            Priority: Critical
>              Labels: patch
>         Attachments: TrieField.patch
>
>
> When starting a test Sol instance, it locks up sometimes. We took a thread dump and all
threads are trying to load classes via Class.forName() and are stuck in that method. One of
these threads got one step further into the <clinit> of TrieField where it creates an
internal static instance of TrieDateField (circular dependency). I don't know why this locks
up exactly, but this code smells anyway. So I removed that instance and made the used methods
static in TrieDateField.
> This does not completely remove the circular dependency, but at least it is no more in
<clinit>. For the future someone may extract a util class to remove the circular dependency.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message