[ https://issues.apache.org/jira/browse/SOLR-13205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17166456#comment-17166456 ]
Jason Gerlowski commented on SOLR-13205: ---------------------------------------- With this commit, the SolrQueryParserBaseTest fails on branch_8x at the line Erick pointed out above: specifically: {{if (!parser.getReq().getCore().getSolrConfig().luceneMatchVersion.onOrAfter(Version.LUCENE_7_2_0)) {}} The issue is that the test uses Mockito but doesn't mock out the call to {{SolrQueryRequest.getCore()}}. This wasn't necessary on master because this conditional doesn't exist there. In fact it looks like it shouldn't exist on {{branch_8x}} either. There's a TODO comment immediately preceding this line indicating that it can likely be removed in 8.0. Now that we're on 8.7, I _think_ we've run out the back-compat window with luceneMatch <7.2. [~dsmiley], looks like you added the snippet below along with the TODO to remove it in "8.0(?)". Do you recall if there was something in particular that gave you pause about the 8.0 removal, or were you possibly just hedging with your question mark in that comment? If there's no concrete reason to avoid removal I'll take this clause out and get this fix back onto branch_8x. {code} // TODO in 8.0(?) remove this. Prior to 7.2 we defaulted to allowing sub-query parsing by default if (!parser.getReq().getCore().getSolrConfig().luceneMatchVersion.onOrAfter(Version.LUCENE_7_2_0)) { setAllowSubQueryParsing(true); } // otherwise defaults to false {code} > StringIndexOutOfBoundsException in SolrQueryParserBase.getFieldQuery > -------------------------------------------------------------------- > > Key: SOLR-13205 > URL: https://issues.apache.org/jira/browse/SOLR-13205 > Project: Solr > Issue Type: Bug > Components: search > Affects Versions: master (9.0) > Environment: h1. Steps to reproduce > * Use a Linux machine. > * Build commit {{ea2c8ba}} of Solr as described in the section below. > * Build the films collection as described below. > * Start the server using the command {{./bin/solr start -f -p 8983 -s > /tmp/home}} > * Request the URL given in the bug description. > h1. Compiling the server > {noformat} > git clone https://github.com/apache/lucene-solr > cd lucene-solr > git checkout ea2c8ba > ant compile > cd solr > ant server > {noformat} > h1. Building the collection and reproducing the bug > We followed [Exercise > 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2] from > the [Solr > Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html]. > {noformat} > mkdir -p /tmp/home > echo '<?xml version="1.0" encoding="UTF-8" ?><solr></solr>' > > /tmp/home/solr.xml > {noformat} > In one terminal start a Solr instance in foreground: > {noformat} > ./bin/solr start -f -p 8983 -s /tmp/home > {noformat} > In another terminal, create a collection of movies, with no shards and no > replication, and initialize it: > {noformat} > bin/solr create -c films > curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": > {"name":"name", "type":"text_general", "multiValued":false, "stored":true}}' > http://localhost:8983/solr/films/schema > curl -X POST -H 'Content-type:application/json' --data-binary > '{"add-copy-field" : {"source":"*","dest":"_text_"}}' > http://localhost:8983/solr/films/schema > ./bin/post -c films example/films/films.json > curl -v “URL_BUG” > {noformat} > Please check the issue description below to find the “URL_BUG” that will > allow you to reproduce the issue reported. > Reporter: Johannes Kloos > Assignee: Jason Gerlowski > Priority: Minor > Labels: diffblue, newdev > Fix For: master (9.0), 8.7 > > Attachments: SOLR-13205.patch > > Time Spent: 10m > Remaining Estimate: 0h > > Requesting the following URL causes Solr to return an HTTP 500 error response: > {noformat} > http://localhost:8983/solr/films/select?df=&explainOther=debug=all&debugQuery=on > {noformat} > The error response seems to be caused by the following uncaught exception: > {noformat} > java.lang.StringIndexOutOfBoundsException: String index out of range: 0 > at java.lang.String.charAt(String.java:658) > at > org.apache.solr.parser.SolrQueryParserBase.getFieldQuery(SolrQueryParserBase.java:1045) > at > org.apache.solr.parser.SolrQueryParserBase.handleBareTokenQuery(SolrQueryParserBase.java:801) > at org.apache.solr.parser.QueryParser.Term(QueryParser.java:421) > at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:278) > at org.apache.solr.parser.QueryParser.Query(QueryParser.java:162) > at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:131) > at > org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:255) > at org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:49) > at org.apache.solr.search.QParser.getQuery(QParser.java:173) > at > org.apache.solr.util.SolrPluginUtils.doSimpleQuery(SolrPluginUtils.java:479) > at > org.apache.solr.util.SolrPluginUtils.doStandardResultsDebug(SolrPluginUtils.java:390) > at > org.apache.solr.util.SolrPluginUtils.doStandardDebug(SolrPluginUtils.java:343) > at > org.apache.solr.handler.component.DebugComponent.process(DebugComponent.java:100) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:306) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199) > {noformat} > The “df” parameter means that we set the empty string as default field(!). > Since we do not give a field in the query, the default field is substituted > in getFieldQuery. We then check if the field starts with “_” by using > charAt(0). > A trivial fix would be to replace field.charAt(0) == ‘_’ with > field.startsWith(“_”). > To set up an environment to reproduce this bug, follow the description in the > ‘Environment’ field. > We automatically found this issue and ~70 more like this using [Diffblue > Microservices Testing|https://www.diffblue.com/labs/?utm_source=solr-br]. > Find more information on this [fuzz testing > campaign|https://www.diffblue.com/blog/2018/12/19/diffblue-microservice-testing-a-sneak-peek-at-our-early-product-and-results?utm_source=solr-br]. -- 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