This is the full error message from the Node for the second example, which is the following query that get stucked.
innerJoin(innerJoin( search(people, q=*:*, fl="personId,name", sort="personId asc"), search(pets, q=type:cat, fl="pertsId,petName", sort="personId asc"), on="personId=petsId" ), search(collection1, q=*:*, fl="collectionId,collectionName", sort="collectionId asc"), )on="personId=collectionId" ------------------------------------------------------------------------------------------------------------------ Full error message: java.io.IOException: java.util.concurrent.TimeoutException: Idle timeout expired : 50000/50000 ms at org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block(SharedBlo ckingCallback.java:219) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:220) at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:496) at org.apache.commons.io.output.ProxyOutputStream.write(ProxyOutputStrea m.java:90) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:282) at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125) at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207) at org.apache.solr.util.FastWriter.flush(FastWriter.java:140) at org.apache.solr.util.FastWriter.write(FastWriter.java:54) at org.apache.solr.response.JSONWriter.writeStr(JSONResponseWriter.java: 482) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWrit er.java:132) at org.apache.solr.response.JSONWriter$2.put(JSONResponseWriter.java:559 ) at org.apache.solr.handler.ExportWriter$StringFieldWriter.write(ExportWr iter.java:1445) at org.apache.solr.handler.ExportWriter.writeDoc(ExportWriter.java:302) at org.apache.solr.handler.ExportWriter.lambda$writeDocs$4(ExportWriter. java:268) at org.apache.solr.response.JSONWriter.writeMap(JSONResponseWriter.java: 547) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWrit er.java:193) at org.apache.solr.response.JSONWriter$1.add(JSONResponseWriter.java:532 ) at org.apache.solr.handler.ExportWriter.writeDocs(ExportWriter.java:267) at org.apache.solr.handler.ExportWriter.lambda$null$1(ExportWriter.java: 219) at org.apache.solr.response.JSONWriter.writeIterator(JSONResponseWriter. java:523) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWrit er.java:175) at org.apache.solr.response.JSONWriter$2.put(JSONResponseWriter.java:559 ) at org.apache.solr.handler.ExportWriter.lambda$null$2(ExportWriter.java: 219) at org.apache.solr.response.JSONWriter.writeMap(JSONResponseWriter.java: 547) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWrit er.java:193) at org.apache.solr.response.JSONWriter$2.put(JSONResponseWriter.java:559 ) at org.apache.solr.handler.ExportWriter.lambda$write$3(ExportWriter.java :217) at org.apache.solr.response.JSONWriter.writeMap(JSONResponseWriter.java: 547) at org.apache.solr.handler.ExportWriter.write(ExportWriter.java:215) at org.apache.solr.core.SolrCore$3.write(SolrCore.java:2564) at org.apache.solr.response.QueryResponseWriterUtil.writeQueryResponse(Q ueryResponseWriterUtil.java:49) at org.apache.solr.servlet.HttpSolrCall.writeResponse(HttpSolrCall.java: 809) at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:538) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilte r.java:347) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilte r.java:298) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(Servlet Handler.java:1691) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java :582) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j ava:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.jav a:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandl er.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandl er.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java: 512) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandle r.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandle r.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.j ava:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(Cont extHandlerCollection.java:213) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerColl ection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper .java:134) at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandle r.java:335) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper .java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.jav a:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(Abstra ctConnection.java:273) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoin t.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeP roduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceC onsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(Exec uteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPoo l.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool .java:589) at java.lang.Thread.run(Thread.java:745) Caused by: java.util.concurrent.TimeoutException: Idle timeout expired: 50000/50 000 ms at org.eclipse.jetty.io.IdleTimeout.checkIdleTimeout(IdleTimeout.java:16 6) at org.eclipse.jetty.io.IdleTimeout$1.run(IdleTimeout.java:50) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:51 1) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. access$201(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. run(ScheduledThreadPoolExecutor.java:293) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor .java:617) ... 1 more Regards, Edwin On 17 June 2017 at 11:53, Zheng Lin Edwin Yeo <edwinye...@gmail.com> wrote: > Hi Joel, > > Below are the results which I am getting. > > If I use this query; > > innerJoin(innerJoin( > search(people, q=*:*, fl="personId,name", sort="personId asc"), > search(pets, q=type:cat, fl="pertsId,petName", sort="personId asc"), > on="personId=petsId" > ), > search(collection1, q=*:*, fl="collectionId,collectionName", > sort="collectionId asc"), > )on="petsId=collectionId" > > I will get this exception error. > > {"result-set":{"docs":[{"EXCEPTION":"Invalid JoinStream - all incoming stream > comparators (sort) must be a superset of this stream's > equalitor.","EOF":true}]}} > > > > But if I use this query: > > innerJoin(innerJoin( > search(people, q=*:*, fl="personId,name", sort="personId asc"), > search(pets, q=type:cat, fl="pertsId,petName", sort="personId asc"), > on="personId=petsId" > ), > search(collection1, q=*:*, fl="collectionId,collectionName", > sort="collectionId asc"), > )on="personId=collectionId" > > The query will get stuck, until I get this message. After which, the whole > Solr is hanged, and I have to restart Solr to get it working again. This is > in Solr 6.5.1. > > 2017-06-17 03:16:00.916 WARN (zkCallback-8-thread-4- > processing-n:192.168.0.1:8983_solr x:collection1_shard1_replica1 s:shard1 > c:collection1 r:core_node1-EventThread) [c:collection1 s:shard1 > r:core_node1 x:collection1_shard1_replica1] o.a.s.c.c.ConnectionManager Our > previous ZooKeeper session was expired. Attempting to reconnect to recover > relationship with ZooKeeper... > > > Regards, > Edwin > > > On 15 June 2017 at 23:36, Zheng Lin Edwin Yeo <edwinye...@gmail.com> > wrote: > >> Hi Joel, >> >> Yes, I got this error: >> >> {"result-set":{"docs":[{"EXCEPTION":"Invalid JoinStream - all incoming >> stream comparators (sort) must be a superset of this stream's >> equalitor.","EOF":true}]}} >> >> >> Ok, will try out the work around first. >> >> Regards, >> Edwin >> >> >> On 15 June 2017 at 20:16, Joel Bernstein <joels...@gmail.com> wrote: >> >>> It looks like you are running into this bug: >>> https://issues.apache.org/jira/browse/SOLR-10512. This not been resolved >>> yet, but I believe there is a work around which is described in the >>> ticket. >>> >>> Joel Bernstein >>> http://joelsolr.blogspot.com/ >>> >>> On Wed, Jun 14, 2017 at 10:09 PM, Zheng Lin Edwin Yeo < >>> edwinye...@gmail.com> >>> wrote: >>> >>> > I have found that this is possible, but currently I have problems if >>> the >>> > field name to join in all the 3 collections are different. >>> > >>> > For example, if in "people" collection, it is called personId, and in >>> > "pets" collection, it is called petsId. But in "collectionId", it is >>> called >>> > collectionName, but it won't work when I place it this way below. Any >>> > suggestions on how I can handle this? >>> > >>> > innerJoin(innerJoin( >>> > search(people, q=*:*, fl="personId,name", sort="personId asc"), >>> > search(pets, q=type:cat, fl="pertsId,petName", sort="personId asc"), >>> > on="personId=petsId" >>> > ), >>> > search(collection1, q=*:*, fl="collectionId,collectionName", >>> > sort="personId asc"), >>> > )on="personId=collectionId" >>> > >>> > >>> > Regards, >>> > Edwin >>> > >>> > On 14 June 2017 at 23:13, Zheng Lin Edwin Yeo <edwinye...@gmail.com> >>> > wrote: >>> > >>> > > Hi, >>> > > >>> > > I'm using Solr 6.5.1. >>> > > >>> > > Is it possible to have multiple hashJoin or innerJoin in the query? >>> > > >>> > > An example will be something like this for innerJoin: >>> > > >>> > > innerJoin(innerJoin( >>> > > search(people, q=*:*, fl="personId,name", sort="personId asc"), >>> > > search(pets, q=type:cat, fl="personId,petName", sort="personId >>> asc"), >>> > > on="personId" >>> > > ), >>> > > search(collection1, q=*:*, fl="personId,personName", sort="personId >>> > > asc"), >>> > > ) >>> > > >>> > > Regards, >>> > > Edwin >>> > > >>> > >>> >> >> >