-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
reverseproxy: Fix dial placeholders, SRV, active health checks #3780
Conversation
I think it helps to review from this point, only focusing on the changes in the
This is everything from this PR back to just before the first reverseproxy change @mohammed90 introduced. |
This looks good to me. Quick summary of the diff I linked above, from what I'm reading:
Seems all logical to me. |
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.
Francis' summary is on-point!
Excellent, thanks @mohammed90 ! Can any of the affected users please re-test with this PR then? It's ready to merge. Would be nice to have confirmation that it works in real use cases. |
Going to check shortly and give a feedback here! Thanks for working on this @mohammed90 |
Alright, according to my internal tests, all is working as expected! ;) Thanks once again everyone that worked on this! ❤️ |
Excellent, thanks @danlsgiga -- normally I would wait for more affected users to test but we've already waited about a week and in the interest of getting the bug fixes out I think I'll merge this in and tag a release today. |
Supersedes #3776
Partially reverts or updates #3756, #3693, and #3695
Please take a look @mohammed90 @francislavoie and users we know to have been affected previously: @waiyip-aquabyte, @danlsgiga, @markuswustenberg, and @yflau. Build artifacts are available in the CI / actions area.
My understanding is that fixing #3753 introduced regressions fixed by #3693 and #3695, which broke dynamic upstreams (using placeholders in dial addresses) as reported in #3768. Instead of piling more code on top to patch the regressions, this change causes the recently-added integration tests to pass without adding more complexity. I think the key is to just not parse the network address at provision-time, which we can't reliably do because we don't know whether it is a usable address (because it supports placeholders, the address might not be able to be evaluated until request-time).
@mohammed90 I did bring over the new tests you wrote for #3776 and they pass, but I did not add them to this commit because I want you to get credit for those, so if you would like to push them to this branch before we merge, that would be great. One test did not pass (
TestDialWithPlaceholderActiveHealthcheck
) but I think that test is not really valid anyway, since we don't parse the addresses up front.