Erick Erickson created SOLR-10562:
-------------------------------------

             Summary: CloudSolrClient.commit can return before docs are 
searchable.
                 Key: SOLR-10562
                 URL: https://issues.apache.org/jira/browse/SOLR-10562
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
    Affects Versions: 6.6, master (7.0)
            Reporter: Erick Erickson
            Assignee: Erick Erickson


I've been beating the heck out of some test cases for fear that
SOLR-10007 really messed things up and I can get a pretty regular test
failure for TestSolrCLIRunExample.testInteractiveSolrCloudExample, but
it doesn't make sense.

So I went back to a revision _before_ SOLR-10007 and it still fails.
But the failure is "impossible". I put a bunch of log.error messages
in and, for experimental purposes a for loop in the test. Here's the
lines that fail in the original:
{code}
for (idx = 0; idx < 10; ++idx) {
 construct a SolrInputDoc and then:
  cloudClient.add(SolrInputDoc);
}

cloudClient.commit();

QueryResponse qr = cloudClient.query(new SolrQuery("str_s:a"));
if (qr.getResults().getNumFound() != numDocs) {
  fail("Expected "+numDocs+" to be found in the "+collectionName+
      " collection but only found "+qr.getResults().getNumFound());
}
{code}

If I put the above (not the commit, just the query and the test) in a
loop and check the query 10 times with a 1 second sleep if the numDocs
!= getNumFound(). Quite regularly I'll see a message in the log file
that getNumFound() != numDocs, but after a few loops getNumFound() ==
numDocs and the test succeeds.

cloudClient is what you'd expect:
cloudClient = 
getCloudSolrClient(executor.solrCloudCluster.getZkServer().getZkAddress());

So unless I'm hallucinating, any tests that rely on
cloudClient.commit() insuring that all docs sent to the cluster are
searchable will potentially fail on occasion.

I looked over the JIRAs briefly and don't see any mentions, of a
similar problem, but I may have missed it.

The logging I'm writing from the update handler _seems_ to show it to be doing 
the right thing. Just late.

I'll attach some data along with a "patch" which generates the logging 
information. I also attempted to submit a single batch rather than 10 
individual docs and that fails too.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to