Where/How the "Search is temporarily disabled" logic was added in
SOLR-12999 can result in some weird failure cases (examples: SOLR-13470 & SOLR-13471) due to the fact that (as currently implemented) some portions of processing a SolrQueryRequest may see a valid searcher, but later other code paths will get an error when trying to use the same searcher.
I think it would make more sense to move the "searchEnabled" logic out of SolrQueryRequestbase.getSearcher() and into SolrCore.getSearcher() (removing the need for SolrCore.isSearchEnabled() ).
- restore the long standing (and widly assumed by code) behavior of SolrQueryRequestbase.getSearcher() that it will always return a consistent result
- ensure that any custom plugins trying to call SolrCore.getSearcher() directly will also get the benefits of the safety checks introduced in
SOLR-13470 SolrException msg not always propogated to HttpClient if exception occurs during response writting
SOLR-13469 rejected requests during ful IndexFetch should not use 403 response code
- relates to
SOLR-12999 Index replication could delete segments first