summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--changelog.d/4164.bugfix1
-rw-r--r--synapse/storage/end_to_end_keys.py5
2 files changed, 5 insertions, 1 deletions
diff --git a/changelog.d/4164.bugfix b/changelog.d/4164.bugfix
new file mode 100644

index 0000000000..f70e0b2056 --- /dev/null +++ b/changelog.d/4164.bugfix
@@ -0,0 +1 @@ +Fix noop checks when updating device keys, reducing spurious device list update notifications. diff --git a/synapse/storage/end_to_end_keys.py b/synapse/storage/end_to_end_keys.py
index 1f1721e820..2a0f6cfca9 100644 --- a/synapse/storage/end_to_end_keys.py +++ b/synapse/storage/end_to_end_keys.py
@@ -40,7 +40,10 @@ class EndToEndKeyStore(SQLBaseStore): 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