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

Fix incorrect metrics reporting for renew_attestations #7344

Merged
merged 1 commit into from
Apr 27, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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)
)