You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Namgyu Kim (Jira)" <ji...@apache.org> on 2021/01/09 16:56:00 UTC
[jira] [Commented] (LUCENE-9661) Another classloader deadlock?
[ https://issues.apache.org/jira/browse/LUCENE-9661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17261898#comment-17261898 ]
Namgyu Kim commented on LUCENE-9661:
------------------------------------
Hi Mike,
I checked this issue and there is a problem with the static initialize part of TermsEnum class.
Deadlocks can occur if the constructor part of BaseTermsEnum is executed during initializing of TermsEnum.
I uploaded the issue reproduction patch.
(Run testDeadlock in TestTermsEnum class)
I think fixing the issue is simple.
1) Change from "TermsEnum EMPTY = new BaseTermsEnum()" to "TermsEnum EMPTY = new TermsEnum()" -> Commented out on my patch
2) Make EmptyTermsEnum class
However, it is difficult how to write a test for this issue.
Is there a good way?
> Another classloader deadlock?
> -----------------------------
>
> Key: LUCENE-9661
> URL: https://issues.apache.org/jira/browse/LUCENE-9661
> Project: Lucene - Core
> Issue Type: Bug
> Affects Versions: master (9.0)
> Reporter: Michael McCandless
> Priority: Major
> Attachments: deadlock_test.patch
>
>
> The {{java}} processes spawned by our Lucene nightly benchmarks sometimes randomly hang, apparently while loading classes across threads, under contention.
> I've opened [this {{luceneutil}} issue with some details|https://github.com/mikemccand/luceneutil/issues/89], but [~uschindler] suggested I open an issue here too since he has been seeing this in CI builds too.
> It is rare, maybe once a week in the nightly benchmarks (which spawn many {{java}} processes with many threads across 128 CPU cores). It is clearly a deadlock – when it strikes, the process hangs forever until I notice and {{kill -9}} it. I posted a coupled {{jstacks}} in the issue above.
> [~rcmuir] suggested using {{classcycle}} to maybe statically dig into possible deadlocks ... I have not tried that yet.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org