Skip to content

Commit 1daae43

Browse files
authored
Reduce volume of 'Waiting for current token' logs, which were introduced in v1.109.0. (#17428)
Introduced in: #17215 This caused us a minor bit of grief as the volume of logs produced was much higher than normal --------- Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org>
1 parent a9ee832 commit 1daae43

3 files changed

Lines changed: 32 additions & 5 deletions

File tree

changelog.d/17428.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Reduce volume of 'Waiting for current token' logs, which were introduced in v1.109.0.

synapse/notifier.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -773,6 +773,7 @@ async def wait_for_stream_token(self, stream_token: StreamToken) -> bool:
773773
stream_token = await self.event_sources.bound_future_token(stream_token)
774774

775775
start = self.clock.time_msec()
776+
logged = False
776777
while True:
777778
current_token = self.event_sources.get_current_token()
778779
if stream_token.is_before_or_eq(current_token):
@@ -783,11 +784,13 @@ async def wait_for_stream_token(self, stream_token: StreamToken) -> bool:
783784
if now - start > 10_000:
784785
return False
785786

786-
logger.info(
787-
"Waiting for current token to reach %s; currently at %s",
788-
stream_token,
789-
current_token,
790-
)
787+
if not logged:
788+
logger.info(
789+
"Waiting for current token to reach %s; currently at %s",
790+
stream_token,
791+
current_token,
792+
)
793+
logged = True
791794

792795
# TODO: be better
793796
await self.clock.sleep(0.5)

synapse/types/__init__.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -777,6 +777,13 @@ def bound_stream_token(self, max_stream: int) -> "RoomStreamToken":
777777

778778
return super().bound_stream_token(max_stream)
779779

780+
def __str__(self) -> str:
781+
instances = ", ".join(f"{k}: {v}" for k, v in sorted(self.instance_map.items()))
782+
return (
783+
f"RoomStreamToken(stream: {self.stream}, topological: {self.topological}, "
784+
f"instances: {{{instances}}})"
785+
)
786+
780787

781788
@attr.s(frozen=True, slots=True, order=False)
782789
class MultiWriterStreamToken(AbstractMultiWriterStreamToken):
@@ -873,6 +880,13 @@ def is_stream_position_in_range(
873880

874881
return True
875882

883+
def __str__(self) -> str:
884+
instances = ", ".join(f"{k}: {v}" for k, v in sorted(self.instance_map.items()))
885+
return (
886+
f"MultiWriterStreamToken(stream: {self.stream}, "
887+
f"instances: {{{instances}}})"
888+
)
889+
876890

877891
class StreamKeyType(Enum):
878892
"""Known stream types.
@@ -1131,6 +1145,15 @@ def is_before_or_eq(self, other_token: "StreamToken") -> bool:
11311145

11321146
return True
11331147

1148+
def __str__(self) -> str:
1149+
return (
1150+
f"StreamToken(room: {self.room_key}, presence: {self.presence_key}, "
1151+
f"typing: {self.typing_key}, receipt: {self.receipt_key}, "
1152+
f"account_data: {self.account_data_key}, push_rules: {self.push_rules_key}, "
1153+
f"to_device: {self.to_device_key}, device_list: {self.device_list_key}, "
1154+
f"groups: {self.groups_key}, un_partial_stated_rooms: {self.un_partial_stated_rooms_key})"
1155+
)
1156+
11341157

11351158
StreamToken.START = StreamToken(
11361159
RoomStreamToken(stream=0), 0, 0, MultiWriterStreamToken(stream=0), 0, 0, 0, 0, 0, 0

0 commit comments

Comments
 (0)