Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
6.7
-
None
-
None
-
Redhat 7.2
Description
When I activate the replication of a shard via the web interface, the data will replicate well on the new shard, but once all the data has been copied, the data will be erased and the synchronization will start again indefinitely.
When I look in the logs, I have this error:
2017-06-29 10:51:39.768 ERROR (recoveryExecutor-3-thread-1-processing-n:X.X.X.X:8983_solr x:collection_shard2_replica2 s:shard2 c:collection r:core_node4) [c:collection s:shard2 r:core_node4 x:collection_shard2_replica2] o.a.s.h.ReplicationHandler Index fetch failed :org.apache.solr.common.SolrException: Unable to download tlog.0000000000002131263.1571535118797897728 completely. Downloaded 0!=871
at org.apache.solr.handler.IndexFetcher$FileFetcher.cleanup(IndexFetcher.java:1591)
at org.apache.solr.handler.IndexFetcher$FileFetcher.fetch(IndexFetcher.java:1474)
at org.apache.solr.handler.IndexFetcher$FileFetcher.fetchFile(IndexFetcher.java:1449)
at org.apache.solr.handler.IndexFetcher.downloadTlogFiles(IndexFetcher.java:893)
at org.apache.solr.handler.IndexFetcher.fetchLatestIndex(IndexFetcher.java:494)
at org.apache.solr.handler.IndexFetcher.fetchLatestIndex(IndexFetcher.java:301)
at org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:400)
at org.apache.solr.cloud.RecoveryStrategy.replicate(RecoveryStrategy.java:219)
at org.apache.solr.cloud.RecoveryStrategy.doRecovery(RecoveryStrategy.java:471)
at org.apache.solr.cloud.RecoveryStrategy.run(RecoveryStrategy.java:284)
at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:176)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:229)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
I tried to extend the tlog retention time (especially with the commitReserveDuration option), but it does not work.