Skip to content
Snippets Groups Projects
Commit 85be3dde authored by Erik Johnston's avatar Erik Johnston Committed by GitHub
Browse files

Bail early if remote wouldn't be retried (#2064)

* Bail early if remote wouldn't be retried

* Don't always return true

* Just use get_retry_limiter

* Spelling
parent 2f8b580b
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@ from .units import Transaction, Edu
from synapse.api.errors import HttpResponseException
from synapse.util.async import run_on_reactor
from synapse.util.logcontext import preserve_context_over_fn
from synapse.util.retryutils import NotRetryingDestination
from synapse.util.retryutils import NotRetryingDestination, get_retry_limiter
from synapse.util.metrics import measure_func
from synapse.types import get_domain_from_id
from synapse.handlers.presence import format_user_presence_state
......@@ -303,9 +303,15 @@ class TransactionQueue(object):
)
return
pending_pdus = []
try:
self.pending_transactions[destination] = 1
# This will throw if we wouldn't retry. We do this here so we fail
# quickly, but we will later check this again in the http client,
# hence why we throw the result away.
yield get_retry_limiter(destination, self.clock, self.store)
# XXX: what's this for?
yield run_on_reactor()
......@@ -398,7 +404,7 @@ class TransactionQueue(object):
destination,
e,
)
for p in pending_pdus:
for p, _ in pending_pdus:
logger.info("Failed to send event %s to %s", p.event_id,
destination)
finally:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment