A much larger patch...
I initially found this bug because of a weird failure in a test i have on dependent project, and it took me longer then i would have liked to reproduce in a solr test because i didn't realize it was caused by using the updateLog, and i didn't realize how few solr tests take advantage of the updateLog.
so with that in mind, it seemed to me like we should probably increase the test coverage of hte updatLog to see if there are any more situations that tickle bugs besides this odd edge case of reload+deleteByQuery.
so in this updated patch...
- same TestReloadAndDeleteDocs as before
- the test solrconfig.xml now defaults to using the updateLog
- SolrTestCaseJ4 uses randomization to occasionally disable the update log with a sys property
- there is currently a nocommit in SolrTestCaseJ4 forcing the sys prop to always be true
- any tests using solrconfig.xml that have an explicit need to use/not-use updateLog override the sysprop explicitly
- a few schema files that did not have version fields are updated to include them
...this still only scratches the surface of increasing the test coverage for the UpdateLog, but it already exposes a reproducible failure in AutoCommitTest with the same symptoms as my TestReloadAndDeleteDocs...
- ERROR Timeout waiting for all directory ref counts...
- searcher leak.
(i have not yet narrowed down which method in AutoCommitTest the dir factory ref count is lost in)