Decode buffers in same thread
1 files changed, 19 insertions, 13 deletions
diff --git a/synapse/storage/pusher.py b/synapse/storage/pusher.py
index 57690c3ef5..c51e08fa27 100644
--- a/synapse/storage/pusher.py
+++ b/synapse/storage/pusher.py
@@ -44,20 +44,26 @@ class PusherStore(SQLBaseStore):
@defer.inlineCallbacks
def get_all_pushers(self):
- sql = (
- "SELECT * FROM pushers"
+ def get_pushers(txn):
+ txn.execute("SELECT * FROM pushers")
+ rows = self.cursor_to_dict(txn)
+
+ for r in rows:
+ dataJson = r['data']
+ r['data'] = None
+ try:
+ r['data'] = json.loads(str(dataJson).decode("UTF8"))
+ except Exception as e:
+ logger.warn(
+ "Invalid JSON in data for pusher %d: %s, %s",
+ r['id'], dataJson, e.message,
+ )
+ pass
+
+ rows = yield self.runInteraction(
+ get_pushers,
+ desc="get_all_pushers",
)
-
- rows = yield self._execute_and_decode("get_all_pushers", sql)
- for r in rows:
- dataJson = r['data']
- r['data'] = None
- try:
- r['data'] = json.loads(str(dataJson).decode("UTF8"))
- except:
- logger.warn("Invalid JSON in data for pusher %d: %s", r['id'], dataJson)
- pass
-
defer.returnValue(rows)
@defer.inlineCallbacks
|