apache / apache/lucene

StringIndexOutOfBoundsException in FastVectorHighlighter [LUCENE-9591]

Open
#10,631 0 comments 0 reactions 0 assignees View on GitHub
affects-version:8.6 legacy-jira-priority:Major type:bug
Dominant language
Java
Stars
3.6k
Forks
1.4k
Avg merge
2d 11h
Merged PRs (30d)
88

Description

Just spotted this one. Solr throws the exception but the request is returned anyway. One highlighted snippet has garbled contents.

```java
2020-10-29 15:06:30.448 ERROR (qtp2119992687-25889) [c:collection_20200511 s:shard4 r:core_node48 x:sitesearch_20200511_shard4_replica_t47] o.a.s.s.HttpSolrCall null:java.lang.StringIndexOutOfBoundsException: start 568858, end 539731, length 539732

       at java.base/java.lang.AbstractStringBuilder.checkRangeSIOOBE(AbstractStringBuilder.java:1724)

       at java.base/java.lang.AbstractStringBuilder.substring(AbstractStringBuilder.java:1017)

       at java.base/java.lang.StringBuilder.substring(StringBuilder.java:85)

       at org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder.getFragmentSourceMSO(BaseFragmentsBuilder.java:204)

       at org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder.makeFragment(BaseFragmentsBuilder.java:175)

       at org.apache.lucene.search.vectorhighlight.BaseFragmentsBuilder.createFragments(BaseFragmentsBuilder.java:144)

       at org.apache.lucene.search.vectorhighlight.FastVectorHighlighter.getBestFragments(FastVectorHighlighter.java:186)

       at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingByFastVectorHighlighter(DefaultSolrHighlighter.java:581)

       at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlightingOfField(DefaultSolrHighlighter.java:531)

       at org.apache.solr.highlight.DefaultSolrHighlighter.doHighlighting(DefaultSolrHighlighter.java:478)

       at org.apache.solr.handler.component.HighlightComponent.process(HighlightComponent.java:172)


```

---
Migrated from [LUCENE-9591](https://issues.apache.org/jira/browse/LUCENE-9591) by Markus Jelsma
Linked issues:
- #8073

Contributor guide

Open the contributing guide

Research direction

Start by reading BaseFragmentsBuilder.getFragmentSourceMSO at the stack-trace location, then follow how FastVectorHighlighter reaches it and review linked issue #8073. Reproduce the reported request if possible; done means the StringIndexOutOfBoundsException no longer occurs and the highlighted snippet is not garbled.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
search
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.