There have been a lot of bugs fixed since the last beta release. It would be 
useful to know whether the bug still exists in the latest CI build so we aren't 
spending time working on bugs that have already been fixed. It shouldn't take 
you long to swap out the packages just to test out whether the problem is still 

If the problem still exists in the CI build, please provide us with the minimal 
code to reproduce it. A console application that reproduces the issue would be 
fine, but it would be ideal if you provide a pull request on GitHub 
(https://github.com/apache/lucenenet/pulls) with a test in the 
AnalyzingSuggesterTest  class 
 that fails with the issue (and mark it with the [LuceneNetSpecific] attribute) 
so we can ensure the bug stays fixed throughout future porting efforts. Once we 
have a test, we can port it back to Java and step through to find out where the 
execution paths diverge. Alternatively, if you are willing to do the work of 
comparing with Java to find out where the problem is, you could submit a PR 
containing both the test and the fix for it.

Despite the fact there are nearly 8000 tests, there are some dusty corners that 
are not covered and I think you may have stumbled upon one of them. And no, you 
are the first to report this issue to us. 

All I can tell you is that the download counts on the new NuGet packages such 
as Lucene.Net.Suggest, Lucene.Net.Highlighter, Lucene.Net.Facet, and 
Lucene.Net.Spatial are much lower than I would expect them to be for a beta, 
and it would be extremely helpful if there were some people dedicated to 
finding bugs in these packages and reporting them to us.

Shad Storhaug (NightOwl888)

-----Original Message-----
From: Oliver Albrecht [mailto:o.albre...@oliver-albrecht.de] 
Sent: Tuesday, August 8, 2017 3:08 PM
To: user@lucenenet.apache.org
Subject: RE: Stackoverflow exception

Hello Itamar, hello Shad,

thanks for the fast response.

I could you provide the callstack, but i think it's useless because it's full 
of calls to IsFinite(State s, OpenBitSet path, OpenBitSet visited) because it 
is a recursive function. For the same reason i think that using the CI-Build 
wouldn't change anything. The IsFinite-function is still working recursively.

I've tried to replace the recursion with a stack based approach (using 
Stack<State>), but i'm not sure if my implementation is correct.

How ever, if i use my non-recursive version of IsFinite it crashes with a 
stackoverflow exception in GetFiniteStrings(State s, HashSet<State> pathstates, 
HashSet<Int32sRef> strings, Int32sRef path, int limit), which is also a 
recursive function. But this function is to complex for me to convert it into a 
non-recursive version without exact knowledge what the function should do.

In my opinion is the replacement of the recursion with a non-recursive approach 
the only solution. Does no one else have this problem? I think to have an index 
with 4000 documents and a size with 15 MB is not so extraordinary. Or is this 
only a problem how the suggester works?

I'm just try to use lucene to build a fulltext query engine for our internal 
dms system. The system holds currently 450.000 documents with ca. 50 GB of 
data. I think the final index will be around 2 GB of size.

kind regards 


> Shad Storhaug <s...@shadstorhaug.com> hat am 7. August 2017 um 19:06 
> geschrieben:
> Hi Oliver,
> In addition to providing the full stack trace that Itamar mentioned, 
> could you confirm the problem still exists if you use the latest CI 
> build here: 
> [https://www.myget.org/gallery/lucene-net-ci?](https://www.myget.org/g
> allery/lucene-net-ci)
> Thanks,
> Shad Storhaug (NightOwl888)
> -----Original Message-----
> From: itamar.synhers...@gmail.com [mailto:itamar.synhers...@gmail.com] 
> On Behalf Of Itamar Syn-Hershko
> Sent: Monday, August 7, 2017 9:06 PM
> To: user@lucenenet.apache.org
> Subject: Re: Stackoverflow exception
> What is the full stacktrace please?
> --
> Itamar Syn-Hershko
> Freelance Developer & Consultant
> Elasticsearch Partner
> Microsoft MVP | Lucene.NET PMC
> http://code972.com | @synhershko <https://twitter.com/synhershko> 
> http://BigDataBoutique.co.il/
> On Mon, Aug 7, 2017 at 4:49 PM, Oliver Albrecht < 
> o.albre...@oliver-albrecht.de> wrote:
> > Hello,
> > 
> > i'm using a DocumentDictionary to feed an AnalyzingSuggester using 
> > the following code:
> > 
> > SnippetAnalyzingSuggester suggester = new AnalyzingSuggester(new 
> > GermanAnalyzer(Lucene.Net.Util.LuceneVersion.LUCENE_48));
> > 
> > Lucene.Net.Store.Directory dir = Lucene.Net.Store.FSDirectory.
> > Open(indexDir);
> > 
> > IndexReader ir = DirectoryReader.Open(dir);
> > 
> > DocumentDictionary dict = new DocumentDictionary(ir, "Content", 
> > null, null);
> > 
> > suggester.Build(dict.GetEntryIterator());
> > 
> > I get a stackoverflow exception on suggester.Build. The exception 
> > throws in Lucene.Net.Util.Automaton.SpecialOperations.IsFinite.
> > 
> > The index contains 10.000 documents and has no payload and no weight.
> > 
> > Kind regards
> > 
> > Oliver

Reply via email to