What version are you using?

Solr 8.7 has changes that caused these errors to hit the logs. These used
to be suppressed. This has been fixed in Solr 9.0 but it has not been back
ported to Solr 8.x.

The errors are actually normal operational occurrences when doing joins so
should be suppressed in the logs and were before the specific release.

It might make sense to do a release that specifically suppresses these
errors without backporting the full Solr 9.0 changes which impact the
memory footprint of export.




Joel Bernstein
http://joelsolr.blogspot.com/


On Mon, Mar 1, 2021 at 10:29 AM ufuk yılmaz <uyil...@vivaldi.net.invalid>
wrote:

> Hello all,
>
> I’m running a large streaming expression and feeding the result to update
> expression.
>
>  update(targetCollection, ...long running stream here...,
>
> I tried sending the exact same query multiple times, it sometimes works
> and indexes some results, then gives exception, other times fails with an
> exception after 2 minutes.
>
> Response is like:
> "EXCEPTION":"java.util.concurrent.ExecutionException: java.io.IOException:
> params distrib=false&numWorkers=4.... and my long stream expression
>
> Server log (short):
> [c:DNM s:shard1 r:core_node2 x:DNM_shard1_replica_n1] o.a.s.s.HttpSolrCall
> null:java.io.IOException: java.util.concurrent.TimeoutException: Idle
> timeout expired: 120000/120000 ms
> o.a.s.s.HttpSolrCall null:java.io.IOException:
> java.util.concurrent.TimeoutException: Idle timeout expired: 120000/120000
> ms
>
> I tried to increase the jetty idle timeout value on the node which hosts
> my target collection to something like an hour. It didn’t affect.
>
>
> Server logs (long)
> ERROR (qtp832292933-589) [c:DNM s:shard1 r:core_node2
> x:DNM_shard1_replica_n1] o.a.s.s.HttpSolrCall null:java.io.IOException:
> java.util.concurrent.TimeoutException: Idle timeout expired: 1
>                                 20000/120000 ms
> solr-01    |    at
> org.eclipse.jetty.util.SharedBlockingCallback$Blocker.block(SharedBlockingCallback.java:235)
> solr-01    |    at
> org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:226)
> solr-01    |    at
> org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:524)
> solr-01    |    at
> org.apache.solr.servlet.ServletOutputStreamWrapper.write(ServletOutputStreamWrapper.java:134)
> solr-01    |    at
> java.base/sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:233)
> solr-01    |    at
> java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:303)
> solr-01    |    at
> java.base/sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:281)
> solr-01    |    at
> java.base/sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
> solr-01    |    at java.base/java.io
> .OutputStreamWriter.write(OutputStreamWriter.java:211)
> solr-01    |    at
> org.apache.solr.common.util.FastWriter.flush(FastWriter.java:140)
> solr-01    |    at
> org.apache.solr.common.util.FastWriter.write(FastWriter.java:54)
> solr-01    |    at
> org.apache.solr.response.JSONWriter._writeChar(JSONWriter.java:173)
> solr-01    |    at
> org.apache.solr.common.util.JsonTextWriter.writeStr(JsonTextWriter.java:86)
> solr-01    |    at
> org.apache.solr.common.util.TextWriter.writeVal(TextWriter.java:52)
> solr-01    |    at
> org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:152)
> solr-01    |    at
> org.apache.solr.common.util.JsonTextWriter$2.put(JsonTextWriter.java:176)
> solr-01    |    at
> org.apache.solr.common.MapWriter$EntryWriter.put(MapWriter.java:154)
> solr-01    |    at
> org.apache.solr.handler.export.StringFieldWriter.write(StringFieldWriter.java:77)
> solr-01    |    at
> org.apache.solr.handler.export.ExportWriter.writeDoc(ExportWriter.java:313)
> solr-01    |    at
> org.apache.solr.handler.export.ExportWriter.lambda$addDocsToItemWriter$4(ExportWriter.java:263)
> --
> solr-01    |    at org.eclipse.jetty.io
> .FillInterest.fillable(FillInterest.java:103)
> solr-01    |    at org.eclipse.jetty.io
> .ChannelEndPoint$2.run(ChannelEndPoint.java:117)
> solr-01    |    at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> solr-01    |    at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> solr-01    |    at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> solr-01    |    at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> solr-01    |    at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> solr-01    |    at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:781)
> solr-01    |    at
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:917)
> solr-01    |    at java.base/java.lang.Thread.run(Thread.java:834)
> solr-01    | Caused by: java.util.concurrent.TimeoutException: Idle
> timeout expired: 120000/120000 ms
> solr-01    |    at org.eclipse.jetty.io
> .IdleTimeout.checkIdleTimeout(IdleTimeout.java:171)
> solr-01    |    at org.eclipse.jetty.io
> .IdleTimeout.idleCheck(IdleTimeout.java:113)
> solr-01    |    at
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
> solr-01    |    at
> java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
> solr-01    |    at
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
> solr-01    |    at
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> solr-01    |    at
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> solr-01    |    ... 1 more
>
>
> My expression, in case it helps. To summarize, it finds the document ids
> which exists on sourceCollection but not on target collection (DNM). Joins
> on itself to duplicate some fields (I couldn’t find another way to
> duplicate the value of field into 2 fields). Then sends the result to
> update. Source collection has about 300M documents, 24GB heap, 2 shards, 2
> replicas of each shard.
>
> update(
>     DNM,
>     batchSize=1000,
>     parallel(
>         WorkerCollection,
>         leftOuterJoin(
>             fetch(
>                 sourceCollection,
>                 complement(
>                     search(
>                         sourceCollection,
>                         q="*:*",
>                         qt="/export",
>                         fq="...some filters...",
>                         sort="id_str asc",
>                         fl="id_str",
>                         partitionKeys="id_str"
>                     ),
>                     search(
>                         DNM,
>                         q="*:*",
>                         qt="/export",
>                         sort="id_str asc",
>                         fl="id_str",
>                         partitionKeys="id_str"
>                     ),
>                     on="id_str"
>                 ),
>                 fl="...my many fields...",
>                 on="id_str",
>                 batchSize="1000"
>             ),
>             select(
>                 fetch(
>                     sourceCollection,
>                     complement(
>                         search(
>                             sourceCollection,
>                             q="*:*",
>                             qt="/export",
>                             fq="...some other filters...",
>                             sort="id_str asc",
>                             fl="id_str",
>                             partitionKeys="id_str"
>                         ),
>                         search(
>                             DNM,
>                             q="*:*",
>                             qt="/export",
>                             sort="id_str asc",
>                             fl="id_str",
>                             partitionKeys="id_str"
>                         ),
>                         on="id_str"
>                     ),
>                     fl="...some other fields...",
>                     on="id_str",
>                     batchSize="1000"
>                 ),
>                 id_str, ..some other fields as...
>             ),
>             on="id_str"
>         ),
>         workers="4", sort="id_str asc"
>     )
> )
>
> Sent from Mail for Windows 10
>
>

Reply via email to