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

Commit

Permalink
Merge pull request #4164 from matrix-org/erikj/fix_device_comparison
Browse files Browse the repository at this point in the history
Fix noop checks when updating device keys
  • Loading branch information
erikjohnston committed Nov 8, 2018
2 parents c70809a + abaa93c commit 7b22421
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog.d/4164.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix noop checks when updating device keys, reducing spurious device list update notifications.
5 changes: 4 additions & 1 deletion synapse/storage/end_to_end_keys.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ def _set_e2e_device_keys_txn(txn):
allow_none=True,
)

new_key_json = encode_canonical_json(device_keys)
# In py3 we need old_key_json to match new_key_json type. The DB
# returns unicode while encode_canonical_json returns bytes.
new_key_json = encode_canonical_json(device_keys).decode("utf-8")

if old_key_json == new_key_json:
return False

Expand Down
15 changes: 15 additions & 0 deletions tests/storage/test_end_to_end_keys.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,21 @@ def test_key_without_device_name(self):
dev = res["user"]["device"]
self.assertDictContainsSubset({"keys": json, "device_display_name": None}, dev)

@defer.inlineCallbacks
def test_reupload_key(self):
now = 1470174257070
json = {"key": "value"}

yield self.store.store_device("user", "device", None)

changed = yield self.store.set_e2e_device_keys("user", "device", now, json)
self.assertTrue(changed)

# If we try to upload the same key then we should be told nothing
# changed
changed = yield self.store.set_e2e_device_keys("user", "device", now, json)
self.assertFalse(changed)

@defer.inlineCallbacks
def test_get_key_with_device_name(self):
now = 1470174257070
Expand Down

0 comments on commit 7b22421

Please sign in to comment.