lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Munendra S N (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-13187) NullPointerException at o.a.solr.search.QParser.getParser
Date Mon, 24 Jun 2019 04:34:00 GMT

    [ https://issues.apache.org/jira/browse/SOLR-13187?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16870802#comment-16870802
] 

Munendra S N commented on SOLR-13187:
-------------------------------------

 [^SOLR-13187.patch] 
This includes
* Changes.txt entry and Minor refactoring
* I came across similar issue in StatsField - SOLR-13197. Here, getQueryPlugin(which returns
qparser plugin) is directly called to avoid reparsing of the params.
* I have verified that getQueryPlugin is called only in 2 places - In QParser and StatsField

This patch handles both NPE separately
Another way would be add new public method in QParser which can be used by StatsField(preferred
but involves introducing new public API)

[~mkhludnev]
Could you please share your thoughts on both these approaches??

> NullPointerException at o.a.solr.search.QParser.getParser
> ---------------------------------------------------------
>
>                 Key: SOLR-13187
>                 URL: https://issues.apache.org/jira/browse/SOLR-13187
>             Project: Solr
>          Issue Type: Bug
>    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
> 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]. The attached
file ({{home.zip}}) gives the contents of folder {{/tmp/home}} that you will obtain by following
the steps below:
> {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
> {noformat}
>            Reporter: Cesar Rodriguez
>            Assignee: Mikhail Khludnev
>            Priority: Minor
>              Labels: diffblue, newdev
>         Attachments: SOLR-13187.patch, SOLR-13187.patch, SOLR-13187.patch, home.zip
>
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?fq={!a}
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> java.lang.NullPointerException
> 	at org.apache.solr.search.QParser.getParser(QParser.java:367)
> 	at org.apache.solr.search.QParser.getParser(QParser.java:319)
> 	at org.apache.solr.search.QParser.getParser(QParser.java:309)
> 	at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:203)
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:272)
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2559)
> 	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:516)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:394)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:340)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
> [...]
> {noformat}
> The call to {{getQueryPlugin}} from {{org.apache.solr.search.QParser.getParser()}}, at
line 366, can return a null pointer, as witnessed by the URL above. Method {{getParser}} should
probably check for this.
> We found this bug using [Diffblue Microservices Testing|https://www.diffblue.com/labs/].
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].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message