Don't reset counters before successful outgoing federation request (#1089)
* Don't reset counters before successful outgoing federation request on incoming federation request * Commentsmain
parent
8a6152ca70
commit
225b72bd42
|
@ -59,8 +59,11 @@ func (oq *destinationQueue) retry() {
|
||||||
// and then skip ahead a lot which feels non-ideal but equally we can't persist thousands of events
|
// and then skip ahead a lot which feels non-ideal but equally we can't persist thousands of events
|
||||||
// in-memory to maybe-send it one day. Ideally we would just shove these pending events in a database
|
// in-memory to maybe-send it one day. Ideally we would just shove these pending events in a database
|
||||||
// so we can send a lot of events.
|
// so we can send a lot of events.
|
||||||
oq.statistics.Success()
|
//
|
||||||
// if we were backing off, swap to not backing off and interrupt the select.
|
// Interrupt the backoff. If the federation request that happens as a result of this is successful
|
||||||
|
// then the counters will be reset there and the backoff will cancel. If the federation request
|
||||||
|
// fails then we will retry at the current backoff interval, so as to prevent us from spamming
|
||||||
|
// homeservers which are behaving badly.
|
||||||
// We need to use an atomic bool here to prevent multiple calls to retry() blocking on the channel
|
// We need to use an atomic bool here to prevent multiple calls to retry() blocking on the channel
|
||||||
// as it is unbuffered.
|
// as it is unbuffered.
|
||||||
if oq.backingOff.CAS(true, false) {
|
if oq.backingOff.CAS(true, false) {
|
||||||
|
|
Loading…
Reference in New Issue