-
Notifications
You must be signed in to change notification settings - Fork 826
SOLR-18011: Allow locked Admin APIs to call other locked Admin APIs #3916
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
HoustonPutman
merged 37 commits into
apache:main
from
HoustonPutman:solr-18011-locking-update
Apr 21, 2026
Merged
Changes from 23 commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
00a67b4
Huge commit - restore uses installshard - big update in locking
HoustonPutman 2d5e12b
Implement callingLock mirroring for distributed API Manager locking
HoustonPutman 37cea68
Merge remote-tracking branch 'apache/main' into locking-update
HoustonPutman 293f35d
Merge remote-tracking branch 'apache/main' into locking-update
HoustonPutman 242235a
Changelog
HoustonPutman 72ae4bf
Merge remote-tracking branch 'apache/main' into solr-18011-locking-up…
HoustonPutman b0452f4
Support distributed locks better
HoustonPutman 72401ca
Start switching over to AdminCmdContext
HoustonPutman 6dac593
Refactor how locking is passed through collections api commands.
HoustonPutman e368c48
Make some bug fixes
HoustonPutman 97352f7
Some test 'fixes', need to rethink v2 tests still
HoustonPutman 6f2d61a
Add real tests for DeleteAlias and DeleteNode v2 apis
HoustonPutman 74176a4
Tidy
HoustonPutman df0888c
Fix broken tests
HoustonPutman 3627d29
Add missing test utility class
HoustonPutman 4a49aa9
Move over remaining APIs and tests
HoustonPutman 021303a
Merge remote-tracking branch 'apache/main' into solr-18011-locking-up…
HoustonPutman e61279c
Merge remote-tracking branch 'apache/main' into solr-18011-locking-up…
HoustonPutman 4c9a766
Fix changelog entry
HoustonPutman c7cfe19
Remove files that shouldn't be changed.
HoustonPutman 08326cc
One more that shouldn't be changed
HoustonPutman 2513cd4
Fixes for passing callingLockIds around
HoustonPutman 7dc8a98
Tidy
HoustonPutman b0f4520
Merge remote-tracking branch 'apache/main' into solr-18011-locking-up…
HoustonPutman dbb01cd
Deserialize callingLockIds in context class
HoustonPutman e87052e
Make some fixes for LockTree, add tests to validate
HoustonPutman 5a2b445
Improve tests, fix errors in locking
HoustonPutman 1e4767a
Add tests for Distributed locking. Make fixes
HoustonPutman b7939e0
Merge remote-tracking branch 'apache/main' into solr-18011-locking-up…
HoustonPutman 1bf192c
Fix precommit issues
HoustonPutman e750951
Merge remote-tracking branch 'apache/main' into solr-18011-locking-up…
HoustonPutman a9b4cdb
Make sure that locking must be top-down, and cannot introduce dead-locks
HoustonPutman 76ea4fd
Only pass relevant lockId, not all lockIds
HoustonPutman 629d9c4
One missed refactored name
HoustonPutman 2687168
Some fixes
HoustonPutman edf4a12
Improve changelog entry
HoustonPutman 50f97a2
Fix error scenario for overseer, add test
HoustonPutman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc | ||
| title: Allow locked Admin APIs to call other locked AdminAPIs without deadlocking | ||
| type: changed # added, changed, fixed, deprecated, removed, dependency_update, security, other | ||
| authors: | ||
| - name: Houston Putman | ||
| nick: HoustonPutman | ||
| links: | ||
| - name: SOLR-18011 | ||
| url: https://issues.apache.org/jira/browse/SOLR-18011 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[0] If these deadlocks are a real thing that a user might've seen, then I think we should reword the changelog to highlight the benefit they get out of this change. Maybe something like:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So currently no Admin APIs call other Admin APIs, they will run the Cmd themselves perhaps, but they won't submit it to the overseer or anything. Or they will call the coreAPIs themselves that the other collection API would do. But we currently get around this deadlock by just not doing it. I think we should be able to re-use code a bit better and have 1 entry point for a lot of these APIs, so this is a necessary part of that.