-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
DruidLeaderClient.goAsync() is broken #9701
Comments
This is a release blocker for 0.18.0 since Druid doesn't work with multi-masters. |
I think we can revert #9481 for both master and 0.18.0 branches since it doesn't have any changes other than removing |
@jihoonson |
When it tries to follow redirects, it checks the current known leader which calls druid/server/src/main/java/org/apache/druid/discovery/DruidLeaderClient.java Lines 297 to 307 in cda9f41
|
ignoring name of that method, when we make request to wrong leader, we should get a HTTP 302 back and that redirect is then followed to get the request to right node (see
|
The problem happens with |
Yep, sorry for confusing. @himanshug you're right about I agree that the best approach to fix this would fix #8716, but we are running out of time for 0.18.0, I'm still inclined to reverting #9481 for now. |
Reverting the patch makes sense to me, then for the next release, adding it back along with implementing redirects for |
ah, I see , wasn't aware of this change. I agree, right fix is to make it follow leader. for now, I think right way to fix it to not revert #9481 but rather use that will revert the behavior equivalent to using zk specific let me do a PR unless someone sees problems with that .. @gianm @jihoonson ? |
or rather, to expedite things, let us revert #9481 for now. I will revive that along with bringing in |
@gianm @himanshug thanks for understanding! The PR is ready at #9702. |
Affected Version
0.18.0
Description
This bug seems to be introduced after #9481. Before this PR,
DruidLeaderClient
used to useServerDiscoverySelector
to find the leader. Since only the leader Overlord and Coordinator announce themselves,ServerDiscoverySelector
could return the current leader toDruidLeaderClient
. But now,DruidLeaderClient
picks up the first node returned fromDruidNodeDiscovery
which knows all announced nodes. SinceDruidLeaderClient.goAsync()
doesn't follow redirection (#8716), some methods of the system table which usegoAsync()
API returns an error with the Temporary Redirect status.The text was updated successfully, but these errors were encountered: