[
https://issues.apache.org/jira/browse/SOLR-6640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14186746#comment-14186746
]
Robert Muir commented on SOLR-6640:
-----------------------------------
{quote}
In order to make sure that we are actually downloading files belonging to the
correct segment, we need access to the segment version but it doesn't seem like
there's an easy way to read them? Can the segment ids be exposed in the
IndexCommit object?
{quote}
SegmentInfos infos = SegmentInfos.readCommit(directory,
commit.getSegmentsFileName());
{quote}
Also, can we provide a custom segment id instead of having Lucene generate them?
{quote}
No: this is an internal safety mechanism from lucene. Its detecting that solr
replicates the wrong file (again: in this case, the wrong deletes generation).
Apparently, we cannot entrust apps to not mismatch up our index files.
{quote}
As it stands today, we have no way of controlling the segment ids generated by
replicas and therefore I'm afraid that replica recovery might end up
downloading the complete index.
{quote}
Maybe instead of worrying about optimizing this, its best to start with "not
corrupting the index".
> ChaosMonkeySafeLeaderTest failure with CorruptIndexException
> ------------------------------------------------------------
>
> Key: SOLR-6640
> URL: https://issues.apache.org/jira/browse/SOLR-6640
> Project: Solr
> Issue Type: Bug
> Components: replication (java)
> Affects Versions: 5.0
> Reporter: Shalin Shekhar Mangar
> Fix For: 5.0
>
> Attachments: Lucene-Solr-5.x-Linux-64bit-jdk1.8.0_20-Build-11333.txt
>
>
> Test failure found on jenkins:
> http://jenkins.thetaphi.de/job/Lucene-Solr-5.x-Linux/11333/
> {code}
> 1 tests failed.
> REGRESSION: org.apache.solr.cloud.ChaosMonkeySafeLeaderTest.testDistribSearch
> Error Message:
> shard2 is not consistent. Got 62 from
> http://127.0.0.1:57436/collection1lastClient and got 24 from
> http://127.0.0.1:53065/collection1
> Stack Trace:
> java.lang.AssertionError: shard2 is not consistent. Got 62 from
> http://127.0.0.1:57436/collection1lastClient and got 24 from
> http://127.0.0.1:53065/collection1
> at
> __randomizedtesting.SeedInfo.seed([F4B371D421E391CD:7555FFCC56BCF1F1]:0)
> at org.junit.Assert.fail(Assert.java:93)
> at
> org.apache.solr.cloud.AbstractFullDistribZkTestBase.checkShardConsistency(AbstractFullDistribZkTestBase.java:1255)
> at
> org.apache.solr.cloud.AbstractFullDistribZkTestBase.checkShardConsistency(AbstractFullDistribZkTestBase.java:1234)
> at
> org.apache.solr.cloud.ChaosMonkeySafeLeaderTest.doTest(ChaosMonkeySafeLeaderTest.java:162)
> at
> org.apache.solr.BaseDistributedSearchTestCase.testDistribSearch(BaseDistributedSearchTestCase.java:869)
> {code}
> Cause of inconsistency is:
> {code}
> Caused by: org.apache.lucene.index.CorruptIndexException: file mismatch,
> expected segment id=yhq3vokoe1den2av9jbd3yp8, got=yhq3vokoe1den2av9jbd3yp7
> (resource=BufferedChecksumIndexInput(MMapIndexInput(path="/mnt/ssd/jenkins/workspace/Lucene-Solr-5.x-Linux/solr/build/solr-core/test/J0/temp/solr.cloud.ChaosMonkeySafeLeaderTest-F4B371D421E391CD-001/tempDir-001/jetty3/index/_1_2.liv")))
> [junit4] 2> at
> org.apache.lucene.codecs.CodecUtil.checkSegmentHeader(CodecUtil.java:259)
> [junit4] 2> at
> org.apache.lucene.codecs.lucene50.Lucene50LiveDocsFormat.readLiveDocs(Lucene50LiveDocsFormat.java:88)
> [junit4] 2> at
> org.apache.lucene.codecs.asserting.AssertingLiveDocsFormat.readLiveDocs(AssertingLiveDocsFormat.java:64)
> [junit4] 2> at
> org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:102)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]