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

Cassandra Targett commented on SOLR-15482:
------------------------------------------

Full stack trace with the request:

{code}
2021-06-16 12:21:19.319 INFO  (qtp264978436-31) [c:gettingstarted s:shard1 
r:core_node3 x:gettingstarted_shard1_replica_n1] o.a.s.c.S.Request 
[gettingstarted_shard1_replica_n1]  webapp=/solr path=/select 
params={df=_text_&distrib=false&fl=id&fl=score&shards.purpose=16388&start=0&fsv=true&shard.url=http://192.168.1.35:8983/solr/gettingstarted_shard1_replica_n2/|http://192.168.1.35:7574/solr/gettingstarted_shard1_replica_n1/&rows=10&rid=-0&version=2&q={!join+method%3D"crossCollection"+from%3Dmanu_id_s+to%3Dmanu_id_s+fromIndex%3Dgettingstarted}*:*&omitHeader=false&NOW=1623846079063&isShard=true&wt=javabin}
 status=500 QTime=116

2021-06-16 12:21:19.320 ERROR (qtp264978436-30) [c:gettingstarted s:shard2 
r:core_node7 x:gettingstarted_shard2_replica_n4] o.a.s.s.HttpSolrCall 
java.lang.NullPointerException
        at 
org.apache.solr.schema.FieldType.readableToIndexed(FieldType.java:419)
        at 
org.apache.solr.search.join.CrossCollectionJoinQuery$TermsJoinKeyCollector.collect(CrossCollectionJoinQuery.java:133)
        at 
org.apache.solr.search.join.CrossCollectionJoinQuery$CrossCollectionJoinQueryWeight.getDocSet(CrossCollectionJoinQuery.java:297)
        at 
org.apache.solr.search.join.CrossCollectionJoinQuery$CrossCollectionJoinQueryWeight.scorer(CrossCollectionJoinQuery.java:311)
        at org.apache.lucene.search.Weight.bulkScorer(Weight.java:182)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:658)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:445)
        at 
org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:211)
        at 
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1596)
        at 
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1413)
        at 
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:596)
        at 
org.apache.solr.handler.component.QueryComponent.doProcessUngroupedSearch(QueryComponent.java:1508)
        at 
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:398)
        at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:355)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:216)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:2646)
        at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:794)
        at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:567)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:427)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:357)
        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
        at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
        at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1612)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1582)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
        at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
        at 
org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at 
org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
        at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:335)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.base/java.lang.Thread.run(Thread.java:834)
{code}

> Cross-collection join when document is missing from field throws NPE
> --------------------------------------------------------------------
>
>                 Key: SOLR-15482
>                 URL: https://issues.apache.org/jira/browse/SOLR-15482
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: query parsers
>            Reporter: Cassandra Targett
>            Priority: Major
>
> When using {{method=crossCollection}} in a Join query, if a document does not 
> have the field used for the {{from}} param, a NullPointerException is thrown.
> This is pretty simple to reproduce using the techproducts sample data 
> (following assumes a clean install):
> {code}
> $ ./bin/solr start -e cloud -noprompt
> $ ./bin/post -c gettingstarted example/exampledocs/*.xml
> $ curl 'http://localhost:8983/solr/gettingstarted/select' -F 'q={!join 
> method="crossCollection" from=manu_id_s to=manu_id_s 
> fromIndex=gettingstarted}*:*'
> {
>   "responseHeader":{
>     "zkConnected":true,
>     "status":500,
>     "QTime":335,
>     "params":{
>       "q":"{!join method=\"crossCollection\" from=manu_id_s to=manu_id_s 
> fromIndex=gettingstarted}*:*"}},
>   "error":{
>     "metadata":[
>       
> "error-class","org.apache.solr.client.solrj.impl.BaseHttpSolrClient$RemoteSolrException",
>       
> "root-error-class","org.apache.solr.client.solrj.impl.BaseHttpSolrClient$RemoteSolrException"],
>     "msg":"Error from server at null: java.lang.NullPointerException\n\tat 
> org.apache.solr.schema.FieldType.readableToIndexed(FieldType.java:419)...
> {code}
> Depending on which shard the error comes from, you might see a "No live 
> SolrServers available to handle this request" error, but digging into the 
> logs for the other shard that served the query will show the same NPE in the 
> example above (I'll put a full stack trace into a comment).
> "Regular" (non-cross-collection) joins work fine if some documents are 
> missing the field.
> If we shouldn't expect XCJF to work when documents are missing the {{from}} 
> field, then we should document that as a limitation and also throw a more 
> descriptive error.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to