[
https://issues.apache.org/jira/browse/SOLR-12313?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16751838#comment-16751838
]
Hoss Man commented on SOLR-12313:
---------------------------------
Beyond the concerns mark previously raised regarding: documentation of purpose;
how slow this can make tests; & wether it's correctly implemented – I've
recently noticed two additional big problems:
* this method causes *guaranteed* failures in
{{ForceLeaderTest.testReplicasInLIRNoLeader}} on branch_7x when the randomizer
enables java {{asserts}} _and_ {{onlyLeaderIndexes}} randomizes to "true"
(resulting in the use of tlog replicas)
** Note: forcing {{TestInjection.waitForReplicasInSync = null}} allows this
test to sometimes pass, but it's still finicky due to the delay in search
results being updated in tlog replicas
** Mark had previously (Nov2018) modified this test class to prevent tlog
replicas, but aparently didn't notice on backporting that 7x had this
additional test method (deprecated & removed in master) that used the
{{onlyLeaderIndexes}} variable directly
* {{TestInjection.waitForInSyncWithLeader()}} does not obey the contract all
test injection methods must obey
** notably it (by default) forces commits to tlog replicas to block until in
sync with leader in non-test Solr instances if solr was started with JVM
assertions
** this is an end user facing performance bottleneck, that can cause real
world commits to time out!
Unless there are objections from someone who understands tlog replicas really
well & is willing to step up and "fix" {{waitForInSyncWithLeader()}} (including
mark's concerns above about how it's designed), I plan to do the following:
# create a sub-task to document & track the user affecting bug regarding
TLOG+assertions / commits in CHANGES.txt
# commit a change making {{TestInjection.waitForInSyncWithLeader()}} a No-Op,
citing both this issue and the new sub-task
** backporting down to 7x & resolving the sub-task as fixed in 7.7
# commit a change to ForceLeaderTest's initialization of {{onlyLeaderIndexes}}
completely preventing the use of tlog replicas as mark intended in his Nov2018
commits
** backporting down to 7x
> TestInjection#waitForInSyncWithLeader needs improvement.
> --------------------------------------------------------
>
> Key: SOLR-12313
> URL: https://issues.apache.org/jira/browse/SOLR-12313
> Project: Solr
> Issue Type: Test
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: Mark Miller
> Priority: Major
>
> This really should have some doc for why it would be used.
> I also think it causes BasicDistributedZkTest to take forever for sometimes
> and perhaps other tests?
> I think checking for uncommitted data is probably a race condition and should
> be removed.
> Checking index versions should follow the rules that replication does - if
> the slave is higher than the leader, it's in sync, being equal is not
> required. If it's expected for a test it should be a specific test that
> fails. This just introduces massive delays.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]