Add some logging for syncing to_device events

Attempt to track down the loss of to_device events
(https://github.com/vector-im/riot-web/issues/2711 etc).
This commit is contained in:
Richard van der Hoff 2016-12-15 18:13:58 +00:00
parent 35129ac998
commit edc6a1e4f9
2 changed files with 10 additions and 5 deletions

View File

@ -576,16 +576,20 @@ class SyncHandler(object):
# We only delete messages when a new message comes in, but that's # We only delete messages when a new message comes in, but that's
# fine so long as we delete them at some point. # fine so long as we delete them at some point.
logger.debug("Deleting messages up to %d", since_stream_id) deleted = yield self.store.delete_messages_for_device(
yield self.store.delete_messages_for_device(
user_id, device_id, since_stream_id user_id, device_id, since_stream_id
) )
logger.info("Deleted %d to-device messages up to %d",
deleted, since_stream_id)
logger.debug("Getting messages up to %d", now_token.to_device_key)
messages, stream_id = yield self.store.get_new_messages_for_device( messages, stream_id = yield self.store.get_new_messages_for_device(
user_id, device_id, since_stream_id, now_token.to_device_key user_id, device_id, since_stream_id, now_token.to_device_key
) )
logger.debug("Got messages up to %d: %r", stream_id, messages)
logger.info(
"Returning %d to-device messages between %d and %d (current token: %d)",
len(messages), since_stream_id, stream_id, now_token.to_device_key
)
sync_result_builder.now_token = now_token.copy_and_replace( sync_result_builder.now_token = now_token.copy_and_replace(
"to_device_key", stream_id "to_device_key", stream_id
) )

View File

@ -242,7 +242,7 @@ class DeviceInboxStore(SQLBaseStore):
device_id(str): The recipient device_id. device_id(str): The recipient device_id.
up_to_stream_id(int): Where to delete messages up to. up_to_stream_id(int): Where to delete messages up to.
Returns: Returns:
A deferred that resolves when the messages have been deleted. A deferred that resolves to the number of messages deleted.
""" """
def delete_messages_for_device_txn(txn): def delete_messages_for_device_txn(txn):
sql = ( sql = (
@ -251,6 +251,7 @@ class DeviceInboxStore(SQLBaseStore):
" AND stream_id <= ?" " AND stream_id <= ?"
) )
txn.execute(sql, (user_id, device_id, up_to_stream_id)) txn.execute(sql, (user_id, device_id, up_to_stream_id))
return txn.rowcount
return self.runInteraction( return self.runInteraction(
"delete_messages_for_device", delete_messages_for_device_txn "delete_messages_for_device", delete_messages_for_device_txn