You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Klas Gesias (JIRA)" <ji...@apache.org> on 2016/10/21 07:16:59 UTC

[jira] [Commented] (SOLR-6744) fl renaming / alias of uniqueKey field generates null pointer exception in SolrCloud configuration

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

Klas Gesias commented on SOLR-6744:
-----------------------------------

I found something that may be related to this. Tested this standalone for 4.10.4 and 4.8.1. Solrcloud 4.10.4.

I made some slight simplifications on the queries to make it easier to read. 

In single core mode I can do this, have an alias with id and pick the name aswell
{{http://localhost:8983/solr/select/?q=*.*&fl=id:django_id&fl=name}}

Gives: 
{"responseHeader":\{"params":\{"q":"*:*","fl":"id:django_id"\} ,"response":\{"numFound":8101, "docs":\[\{"id":"2875206", "name": "some_name"\},\{"id":"2875205", "name": "other_name"\} \]\}

When in SolrCloud mode however I get some behavior I do not really grasp, if I specify *only* id:django_id I get the fields 
Request: 
{{http://solrcloud:8988/solr/select/?q=*.*&fl=id:django_id}}
gives

Response:
{"responseHeader":\{"params":\{"q":"\*:\*","fl":"id:django_id"\}\},"response":\{"numFound":284,"start":0,"maxScore":1.0,"docs":\[\{"id":"product.66"\},\{"id":"product.69"\}...\]\}\}
Where "product.69" is really the "id" not "django_id" which I tried to alias into the "id" field. So it totally ignores my alias request. I could type anything after ":", I could write "id:spamalot" and it would still return the "id" field and id-value. 

But if I add one or more {{fl}} fields when trying to alias the {{id:django_id}}, I get no documents at all! I do get hits but I am pretty certain they are not the correct amount and no documents are retrieved. 
Request:
{{http://solrcloud:8988/solr/select/?q=*.*&fl=id:django_id&fl=name}}

Response:
\{"responseHeader":\{"params":\{"q":"\*:\*","fl":\["id:django_id","name"\]\}\},"response":\{"numFound":274,"maxScore":1.0,"docs":[]}}

Is this a known and expected behaviour? If I do not use aliases this does not happen at all. 

> fl renaming / alias of uniqueKey field generates null pointer exception in SolrCloud configuration
> --------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-6744
>                 URL: https://issues.apache.org/jira/browse/SOLR-6744
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud
>    Affects Versions: 4.10.1
>         Environment: Multiple replicas on SolrCloud config.  This specific example with 4 shard, 3 replica per shard config.  This bug does NOT exist when query is handled by single core.
>            Reporter: Garth Grimm
>            Assignee: Tomás Fernández Löbbe
>            Priority: Minor
>             Fix For: 6.2.1, 6.3, master (7.0)
>
>         Attachments: SOLR-6744.patch, SOLR-6744.patch, SOLR-6744.patch
>
>
> If trying to rename the uniqueKey field using 'fl' in a distributed query (ie: SolrCloud config), an NPE is thrown.
> The workarround is to redundently request the uniqueKey field, once with the desired alias, and once with the original name
> Example...
> http://localhost:8983/solr/cloudcollection/select?q=*%3A*&wt=xml&indent=true&fl=key:id
> Work around:
> http://localhost:8983/solr/cloudcollection/select?q=*%3A*&wt=xml&indent=true&fl=key:id&fl=id
> Error w/o work around...
> {code}
> <response><lst name="responseHeader"><int name="status">500</int><int name="QTime">11</int><lst name="params"><str name="q">*:*</str><str name="indent">true</str><str name="fl">key:id</str><str name="wt">xml</str></lst></lst><lst name="error"><str name="trace">java.lang.NullPointerException
> 	at org.apache.solr.handler.component.QueryComponent.returnFields(QueryComponent.java:1257)
> 	at org.apache.solr.handler.component.QueryComponent.handleRegularResponses(QueryComponent.java:720)
> 	at org.apache.solr.handler.component.QueryComponent.handleResponses(QueryComponent.java:695)
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:324)
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:1967)
> 	at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:418)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
> 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:368)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
> 	at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
> 	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
> 	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
> 	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
> 	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
> 	at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
> 	at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
> 	at java.lang.Thread.run(Thread.java:745)
> </str><int name="code">500</int></lst></response>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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