Mercurial > prosody-modules
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 |
| 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. |
