[
https://issues.apache.org/jira/browse/LUCENE-4269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13424557#comment-13424557
]
Michael McCandless commented on LUCENE-4269:
--------------------------------------------
The bug is really in BalancedSegmentMergePolicy, it's just that SMS exacerbates
this because it forever merges (ie an addDocument or commit will just run
forever). If you use CMS then this busy loop runs in the background...
I'll remove it in 4.x/5.x and deprecate in 3.6.x.
> TestBalancedSegmentMergePolicy.setUp hang
> -----------------------------------------
>
> Key: LUCENE-4269
> URL: https://issues.apache.org/jira/browse/LUCENE-4269
> Project: Lucene - Core
> Issue Type: Bug
> Reporter: Michael McCandless
>
> http://85.25.120.39/job/Lucene-trunk-Linux-Java7-64 was hung for a couple
> days ... stacktrace:
> {noformat}
> 2012-07-28 13:45:03
> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.1-b03 mixed mode):
> "TEST-TestScope-org.apache.lucene.index.TestBalancedSegmentMergePolicy.testForceMerge-seed#[F42FFCD5FAEE14FF]"
> prio=10 tid=0x00007f56e8371800 nid=0x106c runnable [0x00007f56b2130000]
> java.lang.Thread.State: RUNNABLE
> at
> org.apache.lucene.codecs.BlockTreeTermsWriter$TermsWriter$FindBlocks.freeze(BlockTreeTermsWriter.java:392)
> at org.apache.lucene.util.fst.Builder.freezeTail(Builder.java:212)
> at org.apache.lucene.util.fst.Builder.add(Builder.java:392)
> at
> org.apache.lucene.codecs.BlockTreeTermsWriter$TermsWriter.finishTerm(BlockTreeTermsWriter.java:864)
> at org.apache.lucene.codecs.TermsConsumer.merge(TermsConsumer.java:167)
> at org.apache.lucene.codecs.FieldsConsumer.merge(FieldsConsumer.java:65)
> at
> org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:323)
> at org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:110)
> at
> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:3539)
> at org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:3154)
> at
> org.apache.lucene.index.SerialMergeScheduler.merge(SerialMergeScheduler.java:36)
> - locked <0x00000000dc0fcfb8> (a
> org.apache.lucene.index.SerialMergeScheduler)
> at org.apache.lucene.index.IndexWriter.maybeMerge(IndexWriter.java:1727)
> at org.apache.lucene.index.IndexWriter.maybeMerge(IndexWriter.java:1721)
> at
> org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:2612)
> - locked <0x00000000dc0fcfc8> (a java.lang.Object)
> at
> org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2699)
> - locked <0x00000000dc0fcfc8> (a java.lang.Object)
> at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2679)
> at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2663)
> at
> org.apache.lucene.index.RandomIndexWriter.commit(RandomIndexWriter.java:346)
> at
> org.apache.lucene.index.TestBalancedSegmentMergePolicy.setUp(TestBalancedSegmentMergePolicy.java:55)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:601)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1995)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.access$1100(RandomizedRunner.java:132)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:875)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:891)
> at
> org.apache.lucene.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:50)
> at
> org.apache.lucene.util.TestRuleFieldCacheSanity$1.evaluate(TestRuleFieldCacheSanity.java:32)
> at
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
> at
> com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55)
> at
> org.apache.lucene.util.TestRuleReportUncaughtExceptions$1.evaluate(TestRuleReportUncaughtExceptions.java:68)
> at
> org.apache.lucene.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:48)
> at
> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:70)
> at
> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:825)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.access$700(RandomizedRunner.java:132)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$3$1.run(RandomizedRunner.java:671)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$3.evaluate(RandomizedRunner.java:697)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$4.evaluate(RandomizedRunner.java:736)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:747)
> at
> org.apache.lucene.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:45)
> at
> org.apache.lucene.util.TestRuleReportUncaughtExceptions$1.evaluate(TestRuleReportUncaughtExceptions.java:68)
> at
> org.apache.lucene.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
> at
> org.apache.lucene.util.TestRuleIcuHack$1.evaluate(TestRuleIcuHack.java:51)
> at
> com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule$1.evaluate(SystemPropertiesInvariantRule.java:55)
> at
> org.apache.lucene.util.TestRuleNoInstanceHooksOverrides$1.evaluate(TestRuleNoInstanceHooksOverrides.java:53)
> at
> org.apache.lucene.util.TestRuleNoStaticHooksShadowing$1.evaluate(TestRuleNoStaticHooksShadowing.java:52)
> at
> org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:36)
> at
> org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
> at
> org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:70)
> at
> org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.runSuite(RandomizedRunner.java:605)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.access$400(RandomizedRunner.java:132)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner$2.run(RandomizedRunner.java:551)
> "Service Thread" daemon prio=10 tid=0x00007f56e81be800 nid=0x1062 runnable
> [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "C2 CompilerThread1" daemon prio=10 tid=0x00007f56e81bc000 nid=0x1060 waiting
> on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "C2 CompilerThread0" daemon prio=10 tid=0x00007f56e81b9800 nid=0x105f waiting
> on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "Signal Dispatcher" daemon prio=10 tid=0x00007f56e81b7800 nid=0x105e waiting
> on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "Surrogate Locker Thread (Concurrent GC)" daemon prio=10
> tid=0x00007f56e81b5800 nid=0x105c waiting on condition [0x0000000000000000]
> java.lang.Thread.State: RUNNABLE
> "Finalizer" daemon prio=10 tid=0x00007f56e8167000 nid=0x1057 in Object.wait()
> [0x00007f56b3127000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000dd21e078> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
> - locked <0x00000000dd21e078> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
> "Reference Handler" daemon prio=10 tid=0x00007f56e8164800 nid=0x1056 in
> Object.wait() [0x00007f56b3228000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000dd21e068> (a java.lang.ref.Reference$Lock)
> at java.lang.Object.wait(Object.java:503)
> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
> - locked <0x00000000dd21e068> (a java.lang.ref.Reference$Lock)
> "main" prio=10 tid=0x00007f56e800c000 nid=0x1028 in Object.wait()
> [0x00007f56edd14000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <0x00000000dc0f4528> (a
> com.carrotsearch.randomizedtesting.RandomizedRunner$2)
> at java.lang.Thread.join(Thread.java:1258)
> - locked <0x00000000dc0f4528> (a
> com.carrotsearch.randomizedtesting.RandomizedRunner$2)
> at java.lang.Thread.join(Thread.java:1332)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.runSuite(RandomizedRunner.java:561)
> at
> com.carrotsearch.randomizedtesting.RandomizedRunner.run(RandomizedRunner.java:521)
> at
> com.carrotsearch.ant.tasks.junit4.slave.SlaveMain.execute(SlaveMain.java:153)
> at
> com.carrotsearch.ant.tasks.junit4.slave.SlaveMain.main(SlaveMain.java:246)
> at
> com.carrotsearch.ant.tasks.junit4.slave.SlaveMainSafe.main(SlaveMainSafe.java:12)
> "VM Thread" prio=10 tid=0x00007f
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]