[
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: [email protected]
For additional commands, e-mail: [email protected]