You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Uwe Schindler (JIRA)" <ji...@apache.org> on 2015/07/17 14:38:04 UTC
[jira] [Commented] (SOLR-7803) Classloading deadlock in TrieField
[ https://issues.apache.org/jira/browse/SOLR-7803?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14631260#comment-14631260 ]
Uwe Schindler commented on SOLR-7803:
-------------------------------------
bq. One of these the threads got one step further into the <clinit> of TrieField where it creates an internal static instance of TrieDateField (circular dependency).
There is no deadlock in triefield. What is done there is 100% correct according to JVM requirements (classes are allowed to init subclasses from clinit of the parent class.
Especially as there is no Class#forName() in this code, this cannot have to do with this. If you see Class#forName() in the stack trace, this is more related to other problems, because forName() only appears in stack traces when the initialization is done from reflection.
Could it be that this issue is related to LUCENE-6482, which was fixed in 5.2.1?
> 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
> 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