discourse/script
Michael Fitz-Payne 2389186155 DEV(cache_critical_dns): sort resolved SRV targets by priority
The priority field in an SRV RR indicates a preferential order at which
the underlying targets should be utilised. We need to prefer healthy
services in order of priority, where 0 is highest.

Prior to this commit, we relied on whatever order the
dnsclient.getresources method returned. As it turns out, this assumption
is incorrect. The order returned is likely whatever order the system
resolver received DNS responses in, which may not be ordered according
to the spec.

This introduces a ResolvedAddress type which holds the priority value
for SRV targets, or a stand-in priority of zero for A/AAAA RRs. This
type is used as a return value from the underlying name resolution
routines in Name and SRVName.

In this manner, all ordering by priority and resolved time can be
performed directly within the ResolverCache class and calling code can
continue to be none-the-wiser.

Before sorting, we still ensure that we only consider targets with a
priority within the given threshold as previously implemented.

See t/115911.
2023-11-22 08:26:00 +10:00
..
benchmarks DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
bulk_import DEV: Adding polls, solutions, upload references and other improvements to the Discourse merger script (#23689) 2023-11-16 14:32:53 +01:00
demon_test FIX: Revert Demon::DemonBase back to Demon::Base (#8132) 2019-10-02 14:54:08 +10:00
import_scripts DEV: Update importers from PostUpload to UploadReference (#23681) 2023-09-27 15:01:04 +01:00
.gitignore improvements to the mbox import script 2017-11-18 17:16:44 +01:00
alice.txt
analyse_message_bus.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
analyze_sidekiq_queues.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
bench.rb DEV: Remove `RUBY_GLOBAL_METHOD_CACHE_SIZE` (#21249) 2023-04-26 10:39:39 +02:00
biggest_objects.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
boot_mem.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
build_jsconfig.rb DEV: Consolidate and update jsconfig, and add types packages (#23824) 2023-10-18 12:13:20 +01:00
cache_critical_dns DEV(cache_critical_dns): sort resolved SRV targets by priority 2023-11-22 08:26:00 +10:00
check_forking.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
check_reproducible_assets.rb DEV: introduce Embroider behind a flag, and start testing in CI (#23005) 2023-09-07 13:15:43 +01:00
copyright-deposit Add script for compiling copyright deposits (#9646) 2020-05-06 12:51:45 -04:00
db_timestamps_mover.rb FIX: require date db_timestamps_mover script (#21248) 2023-04-26 17:59:20 +10:00
diff_heaps.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
discourse DEV: Be more lenient in CLI confirmation (#16290) 2022-03-25 20:14:41 +00:00
docker_test.rb DEV: Fix typo in `docker_test.rb` script (#23456) 2023-09-07 15:36:27 +08:00
i18n_lint.rb REFACTOR: Fix pluralized strings in chat plugin (#20357) 2023-02-20 10:31:02 +01:00
install_minio_binaries.rb DEV: Add S3 upload system specs using minio (#22975) 2023-08-23 11:18:33 +10:00
local_minio_s3.rb DEV: Add S3 upload system specs using minio (#22975) 2023-08-23 11:18:33 +10:00
measure.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
memory-analysis DEV: enable frozen string literal on all files 2019-05-13 09:31:32 +08:00
memstats.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
micro_bench.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
mwrap_sidekiq PERF: avoid shelling to get hostname aggressively 2020-02-18 15:13:19 +11:00
profile_db_generator.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
promote_migrations DEV: Promote historic post_deploy migrations (#19492) 2022-12-16 13:36:30 +02:00
rails DEV: enable frozen string literal on all files 2019-05-13 09:31:32 +08:00
redis_memory.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
require_profiler.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
silence_successful_output DEV: Silence successful database migration output in github actions (#24416) 2023-11-16 15:55:41 +00:00
spawn_backup_restore.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
start_test_db.rb DEV: Add `docker:test:setup` Rake task (#23430) 2023-09-07 13:46:23 +08:00
switch_container_ruby DEV: add script to switch ruby version from inside container 2019-03-25 17:41:24 +11:00
test_email_settings.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
test_mem.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
test_memory_leak.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
test_pretty_text.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
thread_detective.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
user_simulator.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00