[ https://issues.apache.org/jira/browse/LUCENE-9661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17262269#comment-17262269 ]
Uwe Schindler commented on LUCENE-9661: --------------------------------------- Another fix for this is to place the TermsEnum.EMPTY in another class. See the codec deadlock. There it uses a static inner class named Holder which has the EMPTY constant. In the TermsEnum class remove the static constant and provide a getter that returns the final constant from the holder. By this the inner holder class is initialized only when the first user calls the getter. > 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-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org