Mercurial > prosody-modules
annotate mod_s2s_cache_failures/README.md @ 6509:f61564e11d3b
various: Adjust for loop variables becoming constants in Lua 5.5
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Tue, 07 Apr 2026 14:30:31 +0200 |
| 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. |
