annotate mod_s2s_cache_failures/README.md @ 6556:7477e97a9045

mod_firewall: Apply pre-reload state before re-reading config This change makes load/reload a bit more robust. module.load() runs before module.restore() and it reads from the config and updates the state (if needed). However, after this, module.restore() could run and apply the old state again.
author Matthew Wild <mwild1@gmail.com>
date Sun, 24 May 2026 20:03:20 +0100
parents ee2ebdec1fae
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6343
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 ---
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 labels:
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 - Statistics
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 - Stage-Alpha
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 summary: Cache s2s failures and prevent excessive retries
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 ...
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 ## Description
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 This module essentially rate limits the number of outgoing connection attempts
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 to domains that Prosody hasn't been able to connect to.
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 This can help with resource usage (no need to queue undelivered stanzas for
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 unreachable domains), and also reduces noise in the log files.
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 The retry period is proportional to the amount of time since Prosody last had
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17 a connection to the domain. It also includes some randomness to prevent
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 multiple servers unintentially flooding a domain with reconnection attempts at
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19 the same time. On average a failed domain will be tried around 15 times in the
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 first hour of unavailability, decreasing in frequency to 1-2 attempts per hour
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21 after that.
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23 ## Configuration
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 The only configuration option is:
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 `s2s_failure_cache_size`
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28 : The number of failed domains that will be remembered (overflows will simply
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 cause failures to be forgotten, and Prosody will retry those domains).
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 ## Compatibility
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 Requires Prosody 13.0 or later.
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
34
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
35 For users of Prosody trunk after 13.0, commit [4067a95336dd](https://hg.prosody.im/trunk/rev/4067a95336dd)
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
36 introduces a new `s2s_block_immediate_retries` option which you may want to
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
37 enable, to catch some cases of retries which this module cannot otherwise
ee2ebdec1fae mod_s2s_cache_failures: New module to cache failures to remote domains and control retries
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
38 prevent.