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
import_scripts DEV: Update importers from PostUpload to UploadReference (#23681) 2023-09-27 15:01:04 +01:00
.gitignore
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
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
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
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
profile_db_generator.rb DEV: Apply syntax_tree formatting to `script/*` 2023-01-09 11:13:22 +00:00
promote_migrations
rails
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
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