diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2021-01-15 16:57:23 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-15 16:57:23 +0000 |
commit | 2de7e263ed0280b21fa0e165bf220b501e6e6d76 (patch) | |
tree | abdd14569f3c907baa897289554e7c695a53743f | |
parent | Land support for multiple OIDC providers (#9110) (diff) | |
download | synapse-2de7e263ed0280b21fa0e165bf220b501e6e6d76.tar.xz |
Ensure we store pusher data as text (#9117)
I don't think there's any need to use canonicaljson here. Fixes: #4475.
Diffstat (limited to '')
-rw-r--r-- | changelog.d/9117.bugfix | 1 | ||||
-rw-r--r-- | synapse/storage/databases/main/pusher.py | 5 |
2 files changed, 3 insertions, 3 deletions
diff --git a/changelog.d/9117.bugfix b/changelog.d/9117.bugfix new file mode 100644 index 0000000000..233a76d18b --- /dev/null +++ b/changelog.d/9117.bugfix @@ -0,0 +1 @@ +Fix corruption of `pushers` data when a postgres bouncer is used. diff --git a/synapse/storage/databases/main/pusher.py b/synapse/storage/databases/main/pusher.py index 77ba9d819e..bc7621b8d6 100644 --- a/synapse/storage/databases/main/pusher.py +++ b/synapse/storage/databases/main/pusher.py @@ -17,14 +17,13 @@ import logging from typing import TYPE_CHECKING, Any, Dict, Iterable, Iterator, List, Optional, Tuple -from canonicaljson import encode_canonical_json - from synapse.push import PusherConfig, ThrottleParams from synapse.storage._base import SQLBaseStore, db_to_json from synapse.storage.database import DatabasePool from synapse.storage.types import Connection from synapse.storage.util.id_generators import StreamIdGenerator from synapse.types import JsonDict +from synapse.util import json_encoder from synapse.util.caches.descriptors import cached, cachedList if TYPE_CHECKING: @@ -315,7 +314,7 @@ class PusherStore(PusherWorkerStore): "device_display_name": device_display_name, "ts": pushkey_ts, "lang": lang, - "data": bytearray(encode_canonical_json(data)), + "data": json_encoder.encode(data), "last_stream_ordering": last_stream_ordering, "profile_tag": profile_tag, "id": stream_id, |