Merge pull request #4816 from matrix-org/erikj/4422_debug
Port #4422 debug logging from hotfixes
This commit is contained in:
commit
c665b637de
|
@ -0,0 +1 @@
|
||||||
|
Add debug logger to try and track down #4422.
|
|
@ -39,6 +39,9 @@ from synapse.visibility import filter_events_for_client
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
# Debug logger for https://github.com/matrix-org/synapse/issues/4422
|
||||||
|
issue4422_logger = logging.getLogger("synapse.handler.sync.4422_debug")
|
||||||
|
|
||||||
|
|
||||||
# Counts the number of times we returned a non-empty sync. `type` is one of
|
# Counts the number of times we returned a non-empty sync. `type` is one of
|
||||||
# "initial_sync", "full_state_sync" or "incremental_sync", `lazy_loaded` is
|
# "initial_sync", "full_state_sync" or "incremental_sync", `lazy_loaded` is
|
||||||
|
@ -962,6 +965,15 @@ class SyncHandler(object):
|
||||||
|
|
||||||
yield self._generate_sync_entry_for_groups(sync_result_builder)
|
yield self._generate_sync_entry_for_groups(sync_result_builder)
|
||||||
|
|
||||||
|
# debug for https://github.com/matrix-org/synapse/issues/4422
|
||||||
|
for joined_room in sync_result_builder.joined:
|
||||||
|
room_id = joined_room.room_id
|
||||||
|
if room_id in newly_joined_rooms:
|
||||||
|
issue4422_logger.debug(
|
||||||
|
"Sync result for newly joined room %s: %r",
|
||||||
|
room_id, joined_room,
|
||||||
|
)
|
||||||
|
|
||||||
defer.returnValue(SyncResult(
|
defer.returnValue(SyncResult(
|
||||||
presence=sync_result_builder.presence,
|
presence=sync_result_builder.presence,
|
||||||
account_data=sync_result_builder.account_data,
|
account_data=sync_result_builder.account_data,
|
||||||
|
@ -1425,6 +1437,17 @@ class SyncHandler(object):
|
||||||
old_mem_ev = yield self.store.get_event(
|
old_mem_ev = yield self.store.get_event(
|
||||||
old_mem_ev_id, allow_none=True
|
old_mem_ev_id, allow_none=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# debug for #4422
|
||||||
|
if has_join:
|
||||||
|
prev_membership = None
|
||||||
|
if old_mem_ev:
|
||||||
|
prev_membership = old_mem_ev.membership
|
||||||
|
issue4422_logger.debug(
|
||||||
|
"Previous membership for room %s with join: %s (event %s)",
|
||||||
|
room_id, prev_membership, old_mem_ev_id,
|
||||||
|
)
|
||||||
|
|
||||||
if not old_mem_ev or old_mem_ev.membership != Membership.JOIN:
|
if not old_mem_ev or old_mem_ev.membership != Membership.JOIN:
|
||||||
newly_joined_rooms.append(room_id)
|
newly_joined_rooms.append(room_id)
|
||||||
|
|
||||||
|
@ -1519,30 +1542,39 @@ class SyncHandler(object):
|
||||||
for room_id in sync_result_builder.joined_room_ids:
|
for room_id in sync_result_builder.joined_room_ids:
|
||||||
room_entry = room_to_events.get(room_id, None)
|
room_entry = room_to_events.get(room_id, None)
|
||||||
|
|
||||||
|
newly_joined = room_id in newly_joined_rooms
|
||||||
if room_entry:
|
if room_entry:
|
||||||
events, start_key = room_entry
|
events, start_key = room_entry
|
||||||
|
|
||||||
prev_batch_token = now_token.copy_and_replace("room_key", start_key)
|
prev_batch_token = now_token.copy_and_replace("room_key", start_key)
|
||||||
|
|
||||||
room_entries.append(RoomSyncResultBuilder(
|
entry = RoomSyncResultBuilder(
|
||||||
room_id=room_id,
|
room_id=room_id,
|
||||||
rtype="joined",
|
rtype="joined",
|
||||||
events=events,
|
events=events,
|
||||||
newly_joined=room_id in newly_joined_rooms,
|
newly_joined=newly_joined,
|
||||||
full_state=False,
|
full_state=False,
|
||||||
since_token=None if room_id in newly_joined_rooms else since_token,
|
since_token=None if newly_joined else since_token,
|
||||||
upto_token=prev_batch_token,
|
upto_token=prev_batch_token,
|
||||||
))
|
)
|
||||||
else:
|
else:
|
||||||
room_entries.append(RoomSyncResultBuilder(
|
entry = RoomSyncResultBuilder(
|
||||||
room_id=room_id,
|
room_id=room_id,
|
||||||
rtype="joined",
|
rtype="joined",
|
||||||
events=[],
|
events=[],
|
||||||
newly_joined=room_id in newly_joined_rooms,
|
newly_joined=newly_joined,
|
||||||
full_state=False,
|
full_state=False,
|
||||||
since_token=since_token,
|
since_token=since_token,
|
||||||
upto_token=since_token,
|
upto_token=since_token,
|
||||||
))
|
)
|
||||||
|
|
||||||
|
if newly_joined:
|
||||||
|
# debugging for https://github.com/matrix-org/synapse/issues/4422
|
||||||
|
issue4422_logger.debug(
|
||||||
|
"RoomSyncResultBuilder events for newly joined room %s: %r",
|
||||||
|
room_id, entry.events,
|
||||||
|
)
|
||||||
|
room_entries.append(entry)
|
||||||
|
|
||||||
defer.returnValue((room_entries, invited, newly_joined_rooms, newly_left_rooms))
|
defer.returnValue((room_entries, invited, newly_joined_rooms, newly_left_rooms))
|
||||||
|
|
||||||
|
@ -1663,6 +1695,13 @@ class SyncHandler(object):
|
||||||
newly_joined_room=newly_joined,
|
newly_joined_room=newly_joined,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if newly_joined:
|
||||||
|
# debug for https://github.com/matrix-org/synapse/issues/4422
|
||||||
|
issue4422_logger.debug(
|
||||||
|
"Timeline events after filtering in newly-joined room %s: %r",
|
||||||
|
room_id, batch,
|
||||||
|
)
|
||||||
|
|
||||||
# When we join the room (or the client requests full_state), we should
|
# When we join the room (or the client requests full_state), we should
|
||||||
# send down any existing tags. Usually the user won't have tags in a
|
# send down any existing tags. Usually the user won't have tags in a
|
||||||
# newly joined room, unless either a) they've joined before or b) the
|
# newly joined room, unless either a) they've joined before or b) the
|
||||||
|
|
Loading…
Reference in New Issue