You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Hoss Man (JIRA)" <ji...@apache.org> on 2014/12/04 22:49:12 UTC

[jira] [Updated] (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:all-tabpanel ]

Hoss Man updated SOLR-6744:
---------------------------
    Description: 
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}

  was:
If trying to rename the uniqueKey field using 'fl', and sending the query to SolrCloud config, a null pointer exception gets generated.

http://localhost:8983/solr/cloudcollection/select?q=*%3A*&wt=xml&indent=true&fl=key:id

<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>

        Summary: fl renaming / alias of uniqueKey field generates null pointer exception in SolrCloud configuration  (was: fl renaming of uniqueKey field generates null pointer exception in SolrCloud configuration)

i edited the summary & description a bit to fix up the formatting and point out the workaround (as noted by Jeon Woosung on the mailing list)

the root issue is that the the distributed processing code relies on the uniqueKey field to rectify & merge information from each shard across the various distributed process from shards, and the NPE comes from trying to do this lookup on the uniqueKey field name.

> 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
>            Priority: Minor
>
> 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