Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Fix incorrect metrics reporting for renew_attestations (#7344)
Browse files Browse the repository at this point in the history
We need to wait for the renewals to finish, so that the metrics are correctly
reported.
  • Loading branch information
richvdh authored Apr 27, 2020
1 parent 036fab5 commit 07337fe
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
1 change: 1 addition & 0 deletions changelog.d/7344.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix incorrect metrics reporting for `renew_attestations` background task.
19 changes: 9 additions & 10 deletions synapse/groups/attestations.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,16 @@

import logging
import random
from typing import Tuple

from signedjson.sign import sign_json

from twisted.internet import defer

from synapse.api.errors import HttpResponseException, RequestSendFailed, SynapseError
from synapse.logging.context import run_in_background
from synapse.metrics.background_process_metrics import run_as_background_process
from synapse.types import get_domain_from_id
from synapse.util.async_helpers import yieldable_gather_results

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -162,19 +163,19 @@ def on_renew_attestation(self, group_id, user_id, content):
def _start_renew_attestations(self):
return run_as_background_process("renew_attestations", self._renew_attestations)

@defer.inlineCallbacks
def _renew_attestations(self):
async def _renew_attestations(self):
"""Called periodically to check if we need to update any of our attestations
"""

now = self.clock.time_msec()

rows = yield self.store.get_attestations_need_renewals(
rows = await self.store.get_attestations_need_renewals(
now + UPDATE_ATTESTATION_TIME_MS
)

@defer.inlineCallbacks
def _renew_attestation(group_id, user_id):
def _renew_attestation(group_user: Tuple[str, str]):
group_id, user_id = group_user
try:
if not self.is_mine_id(group_id):
destination = get_domain_from_id(group_id)
Expand Down Expand Up @@ -207,8 +208,6 @@ def _renew_attestation(group_id, user_id):
"Error renewing attestation of %r in %r", user_id, group_id
)

for row in rows:
group_id = row["group_id"]
user_id = row["user_id"]

run_in_background(_renew_attestation, group_id, user_id)
await yieldable_gather_results(
_renew_attestation, ((row["group_id"], row["user_id"]) for row in rows)
)

0 comments on commit 07337fe

Please sign in to comment.