-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[backport -> release/2.8.x] fix(dns): Eliminate asynchronous timer in syncQuery() to prevent hang #12041
Conversation
- Stop retrying in dns/client.lua, let the resolver handle this. This change also makes it possible to disable retries, which previously was not possible - Be more faithful to the timeouts set by the user. Previously, the timeout configured was used only for the ultimate request sent to the DNS server, but asynchronous requests allowed longer timeouts which was not transparent. - When the DNS server fails, stop trying other query types. Previously, the behavior was such that after an (intermediate) failure to query for one record type (say "SRV"), the client would try the next record type (say "A") and succeed with that. It would then return the contents of the "A" record even if the "SRV" record pointed to a different address. - Change domain names used for testing the DNS client into the kong-gateway-testing.link zone, which is controlled by the Kong Gateway team. Fixes #10182 KAG-2300 Signed-off-by: Xiaochen Wang <[email protected]>
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.
CI is read
c348210
to
a09b97f
Compare
Please double-check this on |
…adlock risk (#11900) * fix(dns): introduce the synchronous query in syncQuery() to prevent hang risk Originally the first request to `syncQuery()` will trigger an asynchronous timer event, which added the risk of thread pool hanging. With this patch, cold synchronously DNS query will always happen in the current thread if current phase supports yielding. Fix FTI-5348 --------- Co-authored-by: Datong Sun <[email protected]>
a09b97f
to
cdc7b0d
Compare
Talked with datong in person, this is a potential critical problem in 2.8.x, so we need to advance the merging process. |
With this patch, CI will notify a Kong Inc internal slack channel on every PR that performs a schema change.
It seems that if the do not merge label job is skipped then the second job doesn't run either: https://github.com/Kong/kong/actions/runs/4307151445/jobs/7511859202 This change splits the job into two and narrows down the events on which these jobs are triggered since the only meaninful input are the labels on the PR.
This is a bad practice which could cause merge conflicts and is against our backport policy.
It seems that Github Actions is not running these jobs even once even though the PRs are labelled at least once. This patch runs these jobs on other related PR activity.
backport #11900 and #11386 to 2.8.x
backport some commits about
pr/do not merge
label to 2.8.xSummary
syncQuery()
to prevent deadlock risk (fix(dns): Eliminate asynchronous timer in syncQuery() to prevent hang risk #11900)Checklist
changelog/unreleased/kong
orskip-changelog
label added on PR if changelog is unnecessary. README.mdFull changelog
Issue reference
Fix #[issue number]