It's certainly possible. I'm working on LUCENE-7976 and one of my
attempts did exactly that. There's a tricky bit of code there where a
forceMerge merges some segments and then gets called again for them to
get merged in turn (this to respect maxMergeAtOnceExplicit which
defaults to 30). If the logic was  a bit off it could keep going.

I think another place I messed up was when the merging didn't have
maxMergeAtOnce segments. one of the find*Merges kept being called
because there were segments to merge but never merged any because of a
faulty conditional.

I took a quick look at the test output and don't see _what_ merge
policy is being used though. I _don't_ think TMP has this problem, but
don't know about any of the other merge policies.

In the FWIW category, TMP.findMerges() gets a MergeTrigger as a
parameter but then totally ignores it (even in the current code).


On Mon, Apr 9, 2018 at 1:06 AM, Dawid Weiss <dawid.we...@gmail.com> wrote:
> There is an odd timeout failure here:
> https://builds.apache.org/job/Lucene-Solr-NightlyTests-7.x/195/consoleFull
> The TestPerFieldDocValuesFormat timed out. The stack trace shows just
> one relevant thread in the enforced index merge, never returning from
> the loop awaiting the number of segments to reach the desired number.
> Is it possible that the merge policy ignores MergeTrigger.EXPLICIT
> this this results in an endless loop?
>    [junit4]   2>    4) Thread[id=12,
> name=TEST-TestPerFieldDocValuesFormat.testSparseBinaryFixedLengthVsStoredFields-seed#[617399315453E295],
> state=TIMED_WAITING, group=TGRP-TestPerFieldDocValuesFormat]
>    [junit4]   2>         at java.lang.Object.wait(Native Method)
>    [junit4]   2>         at
> org.apache.lucene.index.IndexWriter.doWait(IndexWriter.java:4716)
>    [junit4]   2>         at
> org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2191)
>    [junit4]   2>         at
> org.apache.lucene.index.IndexWriter.forceMerge(IndexWriter.java:2119)
>    [junit4]   2>         at
> org.apache.lucene.index.RandomIndexWriter.forceMerge(RandomIndexWriter.java:445)
>    [junit4]   2>         at
> org.apache.lucene.index.BaseDocValuesFormatTestCase.doTestBinaryVsStoredFields(BaseDocValuesFormatTestCase.java:1472)
>    [junit4]   2>         at
> org.apache.lucene.index.BaseDocValuesFormatTestCase.doTestBinaryFixedLengthVsStoredFields(BaseDocValuesFormatTestCase.java:1508)
>    [junit4]   2>         at
> org.apache.lucene.index.BaseDocValuesFormatTestCase.testSparseBinaryFixedLengthVsStoredFields(BaseDocValuesFormatTestCase.java:1501)
> Dawid
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: dev-h...@lucene.apache.org

To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to