@@ -505,10 +505,13 @@ async def _load_filtered_recents(
505505 else :
506506 limited = False
507507
508+ log_kv ({"limited" : limited })
509+
508510 if potential_recents :
509511 recents = sync_config .filter_collection .filter_room_timeline (
510512 potential_recents
511513 )
514+ log_kv ({"recents_after_sync_filtering" : len (recents )})
512515
513516 # We check if there are any state events, if there are then we pass
514517 # all current state events to the filter_events function. This is to
@@ -526,6 +529,7 @@ async def _load_filtered_recents(
526529 recents ,
527530 always_include_ids = current_state_ids ,
528531 )
532+ log_kv ({"recents_after_visibility_filtering" : len (recents )})
529533 else :
530534 recents = []
531535
@@ -566,10 +570,15 @@ async def _load_filtered_recents(
566570 events , end_key = await self .store .get_recent_events_for_room (
567571 room_id , limit = load_limit + 1 , end_token = end_key
568572 )
573+
574+ log_kv ({"loaded_recents" : len (events )})
575+
569576 loaded_recents = sync_config .filter_collection .filter_room_timeline (
570577 events
571578 )
572579
580+ log_kv ({"loaded_recents_after_sync_filtering" : len (loaded_recents )})
581+
573582 # We check if there are any state events, if there are then we pass
574583 # all current state events to the filter_events function. This is to
575584 # ensure that we always include current state in the timeline
@@ -586,6 +595,9 @@ async def _load_filtered_recents(
586595 loaded_recents ,
587596 always_include_ids = current_state_ids ,
588597 )
598+
599+ log_kv ({"loaded_recents_after_client_filtering" : len (loaded_recents )})
600+
589601 loaded_recents .extend (recents )
590602 recents = loaded_recents
591603
@@ -1116,13 +1128,23 @@ async def generate_sync_result(
11161128 logger .debug ("Fetching group data" )
11171129 await self ._generate_sync_entry_for_groups (sync_result_builder )
11181130
1131+ num_events = 0
1132+
11191133 # debug for https://github.com/matrix-org/synapse/issues/4422
11201134 for joined_room in sync_result_builder .joined :
11211135 room_id = joined_room .room_id
11221136 if room_id in newly_joined_rooms :
11231137 issue4422_logger .debug (
11241138 "Sync result for newly joined room %s: %r" , room_id , joined_room
11251139 )
1140+ num_events += len (joined_room .timeline .events )
1141+
1142+ log_kv (
1143+ {
1144+ "joined_rooms_in_result" : len (sync_result_builder .joined ),
1145+ "events_in_result" : num_events ,
1146+ }
1147+ )
11261148
11271149 logger .debug ("Sync response calculation complete" )
11281150 return SyncResult (
@@ -1467,6 +1489,7 @@ async def _generate_sync_entry_for_rooms(
14671489 if not sync_result_builder .full_state :
14681490 if since_token and not ephemeral_by_room and not account_data_by_room :
14691491 have_changed = await self ._have_rooms_changed (sync_result_builder )
1492+ log_kv ({"rooms_have_changed" : have_changed })
14701493 if not have_changed :
14711494 tags_by_room = await self .store .get_updated_tags (
14721495 user_id , since_token .account_data_key
@@ -1501,25 +1524,30 @@ async def _generate_sync_entry_for_rooms(
15011524
15021525 tags_by_room = await self .store .get_tags_for_user (user_id )
15031526
1527+ log_kv ({"rooms_changed" : len (room_changes .room_entries )})
1528+
15041529 room_entries = room_changes .room_entries
15051530 invited = room_changes .invited
15061531 knocked = room_changes .knocked
15071532 newly_joined_rooms = room_changes .newly_joined_rooms
15081533 newly_left_rooms = room_changes .newly_left_rooms
15091534
1510- async def handle_room_entries (room_entry ):
1511- logger .debug ("Generating room entry for %s" , room_entry .room_id )
1512- res = await self ._generate_room_entry (
1513- sync_result_builder ,
1514- ignored_users ,
1515- room_entry ,
1516- ephemeral = ephemeral_by_room .get (room_entry .room_id , []),
1517- tags = tags_by_room .get (room_entry .room_id ),
1518- account_data = account_data_by_room .get (room_entry .room_id , {}),
1519- always_include = sync_result_builder .full_state ,
1520- )
1521- logger .debug ("Generated room entry for %s" , room_entry .room_id )
1522- return res
1535+ async def handle_room_entries (room_entry : "RoomSyncResultBuilder" ):
1536+ with start_active_span ("generate_room_entry" ):
1537+ set_tag ("room_id" , room_entry .room_id )
1538+ log_kv ({"events" : len (room_entry .events or [])})
1539+ logger .debug ("Generating room entry for %s" , room_entry .room_id )
1540+ res = await self ._generate_room_entry (
1541+ sync_result_builder ,
1542+ ignored_users ,
1543+ room_entry ,
1544+ ephemeral = ephemeral_by_room .get (room_entry .room_id , []),
1545+ tags = tags_by_room .get (room_entry .room_id ),
1546+ account_data = account_data_by_room .get (room_entry .room_id , {}),
1547+ always_include = sync_result_builder .full_state ,
1548+ )
1549+ logger .debug ("Generated room entry for %s" , room_entry .room_id )
1550+ return res
15231551
15241552 await concurrently_execute (handle_room_entries , room_entries , 10 )
15251553
@@ -1932,6 +1960,12 @@ async def _generate_room_entry(
19321960 room_id = room_builder .room_id
19331961 since_token = room_builder .since_token
19341962 upto_token = room_builder .upto_token
1963+ log_kv (
1964+ {
1965+ "since_token" : since_token ,
1966+ "upto_token" : upto_token ,
1967+ }
1968+ )
19351969
19361970 batch = await self ._load_filtered_recents (
19371971 room_id ,
@@ -1941,6 +1975,13 @@ async def _generate_room_entry(
19411975 potential_recents = events ,
19421976 newly_joined_room = newly_joined ,
19431977 )
1978+ log_kv (
1979+ {
1980+ "batch_events" : len (batch .events ),
1981+ "prev_batch" : batch .prev_batch ,
1982+ "batch_limited" : batch .limited ,
1983+ }
1984+ )
19441985
19451986 # Note: `batch` can be both empty and limited here in the case where
19461987 # `_load_filtered_recents` can't find any events the user should see
0 commit comments