SOLR-18121: Rm 'rm-in-advance' fetcher codepath#4258
SOLR-18121: Rm 'rm-in-advance' fetcher codepath#4258gerlowskija wants to merge 3 commits intoapache:mainfrom
Conversation
Prior to this commit, the IndexFetcher had support for an edge case where if a full-index-fetch was needed but the receiving host didn't have adequate disk space, then the IndexFetcher would delete the existing (out of date) copy of the index to free up space. Unfortunately, this optimization/"feature" was never documented in the ref-guide, had very little test coverage, and contained a number of resource-leaks that appeared to trigger 100% of the time. While the feature might've worked when initially written, the rare-ness of the triggering condition and lack of tests had led to some severe bitrot over time. This commit removes this optimization, largely by walking back changes in 'b061947' which added it initially.
|
Note to self that tests and check pass on this already. Not sure whether this merits a changelog entry or not. In theory it's a removal that folks would care about if they were relying on it. But given that it was undocumented and (afaict) 100% broken, I don't think anyone could rely on it. So a changelog entry would largely just be noise. |
dsmiley
left a comment
There was a problem hiding this comment.
Of course we should articulate that we removed this (broken) feature. No matter how broken, the flag for it was there and some people thought it worked. Yes a changelog, yes a note in major-changes-in....adoc
What flag? There was never a feature-flag around this. And what people thought this worked? The optimization was never documented, and flies against all of the advice we do have in our docs around maintaining the required disk overhead. Users would need to remember a 10 year old JIRA discussion to even have a hint that Solr attempted anything like this. Are you sure your comment above went to the right PR @dsmiley ? I have added a changelog entry for now, but if anything the experience has me leaning even more towards "no changelog". I've left it in case someone can word-smith a version that makes more sense. But otherwise it just feels awkward and contrived to have a changelog entry of "Removed thing that was both broken and undocumented". |
dsmiley
left a comment
There was a problem hiding this comment.
+1 I'm happy with the changelog (and its wording) as sufficient; thanks.
There was a problem hiding this comment.
Note: the comments need to be removed
https://issues.apache.org/jira/browse/SOLR-18121
Description
Prior to this commit, the IndexFetcher had support for an edge case where if a full-index-fetch was needed but the receiving host didn't have adequate disk space, then the IndexFetcher would delete the existing (out of date) copy of the index to free up space.
Unfortunately, this optimization/"feature" was never documented in the ref-guide, had very little test coverage, and contained a number of resource-leaks that appeared to trigger 100% of the time. While the feature might've worked when initially written, the rare-ness of the triggering condition and lack of tests had led to some severe bitrot over time.
Solution
This commit removes the code for this optimization altogether. It largely works by walking back the code introduced in the original change, 'b061947'.
Tests
No new tests; removal of existing test
TestReplicationHandlerDiskOverFlow.Checklist
Please review the following and check all that apply:
mainbranch../gradlew check.