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

Commit 88efc75

Browse files
authored
Include the room ID in more purge room log lines. (#15222)
1 parent f4fc83a commit 88efc75

File tree

5 files changed

+23
-15
lines changed

5 files changed

+23
-15
lines changed

changelog.d/15222.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Improve log lines when purging rooms.

synapse/handlers/pagination.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -683,7 +683,7 @@ async def _shutdown_and_purge_room(
683683

684684
await self._storage_controllers.purge_events.purge_room(room_id)
685685

686-
logger.info("complete")
686+
logger.info("purge complete for room_id %s", room_id)
687687
self._delete_by_id[delete_id].status = DeleteStatus.STATUS_COMPLETE
688688
except Exception:
689689
f = Failure()

synapse/storage/controllers/purge_events.py

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import logging
1717
from typing import TYPE_CHECKING, Set
1818

19+
from synapse.logging.context import nested_logging_context
1920
from synapse.storage.databases import Databases
2021

2122
if TYPE_CHECKING:
@@ -33,8 +34,9 @@ def __init__(self, hs: "HomeServer", stores: Databases):
3334
async def purge_room(self, room_id: str) -> None:
3435
"""Deletes all record of a room"""
3536

36-
state_groups_to_delete = await self.stores.main.purge_room(room_id)
37-
await self.stores.state.purge_room_state(room_id, state_groups_to_delete)
37+
with nested_logging_context(room_id):
38+
state_groups_to_delete = await self.stores.main.purge_room(room_id)
39+
await self.stores.state.purge_room_state(room_id, state_groups_to_delete)
3840

3941
async def purge_history(
4042
self, room_id: str, token: str, delete_local_events: bool
@@ -51,15 +53,17 @@ async def purge_history(
5153
(instead of just marking them as outliers and deleting their
5254
state groups).
5355
"""
54-
state_groups = await self.stores.main.purge_history(
55-
room_id, token, delete_local_events
56-
)
57-
58-
logger.info("[purge] finding state groups that can be deleted")
56+
with nested_logging_context(room_id):
57+
state_groups = await self.stores.main.purge_history(
58+
room_id, token, delete_local_events
59+
)
5960

60-
sg_to_delete = await self._find_unreferenced_groups(state_groups)
61+
logger.info("[purge] finding state groups that can be deleted")
62+
sg_to_delete = await self._find_unreferenced_groups(state_groups)
6163

62-
await self.stores.state.purge_unreferenced_state_groups(room_id, sg_to_delete)
64+
await self.stores.state.purge_unreferenced_state_groups(
65+
room_id, sg_to_delete
66+
)
6367

6468
async def _find_unreferenced_groups(self, state_groups: Set[int]) -> Set[int]:
6569
"""Used when purging history to figure out which state groups can be

synapse/storage/databases/main/purge_events.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,20 +325,23 @@ async def purge_room(self, room_id: str) -> List[int]:
325325
# We then run the same purge a second time without this isolation level to
326326
# purge any of those rows which were added during the first.
327327

328+
logger.info("[purge] Starting initial main purge of [1/2]")
328329
state_groups_to_delete = await self.db_pool.runInteraction(
329330
"purge_room",
330331
self._purge_room_txn,
331332
room_id=room_id,
332333
isolation_level=IsolationLevel.READ_COMMITTED,
333334
)
334335

336+
logger.info("[purge] Starting secondary main purge of [2/2]")
335337
state_groups_to_delete.extend(
336338
await self.db_pool.runInteraction(
337339
"purge_room",
338340
self._purge_room_txn,
339341
room_id=room_id,
340342
),
341343
)
344+
logger.info("[purge] Done with main purge")
342345

343346
return state_groups_to_delete
344347

@@ -376,7 +379,7 @@ def _purge_room_txn(self, txn: LoggingTransaction, room_id: str) -> List[int]:
376379
)
377380
referenced_chain_id_tuples = list(txn)
378381

379-
logger.info("[purge] removing events from event_auth_chain_links")
382+
logger.info("[purge] removing from event_auth_chain_links")
380383
txn.executemany(
381384
"""
382385
DELETE FROM event_auth_chain_links WHERE
@@ -399,7 +402,7 @@ def _purge_room_txn(self, txn: LoggingTransaction, room_id: str) -> List[int]:
399402
"rejections",
400403
"state_events",
401404
):
402-
logger.info("[purge] removing %s from %s", room_id, table)
405+
logger.info("[purge] removing from %s", table)
403406

404407
txn.execute(
405408
"""
@@ -454,7 +457,7 @@ def _purge_room_txn(self, txn: LoggingTransaction, room_id: str) -> List[int]:
454457
# happy
455458
"rooms",
456459
):
457-
logger.info("[purge] removing %s from %s", room_id, table)
460+
logger.info("[purge] removing from %s", table)
458461
txn.execute("DELETE FROM %s WHERE room_id=?" % (table,), (room_id,))
459462

460463
# Other tables we do NOT need to clear out:
@@ -486,6 +489,4 @@ def _purge_room_txn(self, txn: LoggingTransaction, room_id: str) -> List[int]:
486489
# that already exist.
487490
self._invalidate_cache_and_stream(txn, self.have_seen_event, (room_id,))
488491

489-
logger.info("[purge] done")
490-
491492
return state_groups

synapse/storage/databases/state/store.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,12 +805,14 @@ async def purge_room_state(
805805
state_groups_to_delete: State groups to delete
806806
"""
807807

808+
logger.info("[purge] Starting state purge")
808809
await self.db_pool.runInteraction(
809810
"purge_room_state",
810811
self._purge_room_state_txn,
811812
room_id,
812813
state_groups_to_delete,
813814
)
815+
logger.info("[purge] Done with state purge")
814816

815817
def _purge_room_state_txn(
816818
self,

0 commit comments

Comments
 (0)