Skip to content

SOLR-18121: Rm 'rm-in-advance' fetcher codepath#4258

Open
gerlowskija wants to merge 1 commit intoapache:mainfrom
gerlowskija:SOLR-18121-remove-delete-in-advance-optimization
Open

SOLR-18121: Rm 'rm-in-advance' fetcher codepath#4258
gerlowskija wants to merge 1 commit intoapache:mainfrom
gerlowskija:SOLR-18121-remove-delete-in-advance-optimization

Conversation

@gerlowskija
Copy link
Copy Markdown
Contributor

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:

  • I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
  • I have created a Jira issue and added the issue ID to my pull request title.
  • I have given Solr maintainers access to contribute to my PR branch. (optional but recommended, not available for branches on forks living under an organisation)
  • I have developed this patch against the main branch.
  • I have run ./gradlew check.
  • I have added tests for my changes.
  • I have added documentation for the Reference Guide
  • I have added a changelog entry for my change

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.
@gerlowskija
Copy link
Copy Markdown
Contributor Author

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.

Copy link
Copy Markdown
Contributor

@dsmiley dsmiley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants