> What do you suggest for my purpose? If a test case fails re-running it for > some times maybe a solution? What kind of configuration do you suggest for > my Solr configuration? > > >From the snippet of test that you showed, it looks like it's testing only Solr functionality. So, first make sure this is a test that you really need. Solr has it's own tests, and it you feel it could use more (for some specific case or context), I'd open a Jira and try to get the test inside Solr. If my impression is wrong and your test is actually testing your code, then I'd suggest you to use a specific soft commit call with waitSearcher = true on your test instead of relying on the autocommit (and remove the autocommit completely from your solrconfig).
Tomás Thanks; > Furkan KAMACI > 26 May 2014 21:03 tarihinde "Shawn Heisey" <s...@elyograg.org> yazdı: > > > On 5/26/2014 10:57 AM, Furkan KAMACI wrote: > > > Hi; > > > > > > I run Solr within my Test Suite. I delete documents or atomically > update > > > them and check whether if it works or not. I know that I have to setup > a > > > hard/soft commit timing for my test Solr. However even I have that > > settings: > > > > > > <autoCommit> > > > <maxTime>1</maxTime> > > > <openSearcher>true</openSearcher> > > > </autoCommit> > > > > > > <autoSoftCommit> > > > <maxTime>1</maxTime> > > > </autoSoftCommit> > > > > I hope you know that this is BAD configuration. Doing automatic commits > > on an interval of 1 millisecond is asking for a whole host of problems. > > In some cases, this could do a commit after every single document that > > is indexed, which is NOT recommended at all. The openSearcher setting > > of "true" on autoCommit makes it even worse. There's no reason to do > > both autoSoftCommit and autoCommit with openSearcher=true. I don't know > > which one "wins" between autoCommit and autoSoftCommit if they both have > > the same config, but I would guess the hard commit does. > > > > > and even I wait (Thread.sleep()) for a time to wait Solr *sometimes* my > > > tests are failed. I get fail error even I increase wait time. Example > > of a > > > sometimes failed code piece: > > > > > > for (int i = 0; i < dummyDocumentSize; i++) { > > > deleteById("id" + i); > > > dummyDocumentSize--; > > > queryResponse = query(solrParams); > > > assertTrue(queryResponse.getResults().size() == > > dummyDocumentSize); > > > } > > > > > > at debug mode if I wait for Solr to reflect changes I see that I do not > > get > > > error. What do you think, what kind of configuration I should have for > > such > > > kind of purposes? > > > > Chances are that commits are going to take longer than 1 millisecond. > > If you're actively indexing, the system is going to be trying to stack > > up lots of commits at the same time. The maxWarmingSearchers value will > > limit the number of new searchers that can be opened, but it will not > > stop the commits themselves. When lots of commits are going on, each > > one will take *even longer* to complete, which probably explains the > > problem. > > > > Thanks, > > Shawn > > > > >