summary refs log tree commit diff
path: root/synapse/push/pusher.py
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2019-12-18 14:26:58 +0000
committerGitHub <noreply@github.com>2019-12-18 14:26:58 +0000
commitd6752ce5da38d35857fe324800d76a86ee1e64f1 (patch)
tree5f2d50603c03ffbac4952af89d2704452c16db3d /synapse/push/pusher.py
parentAdd delta file to fix missing default table data (#6555) (diff)
downloadsynapse-d6752ce5da38d35857fe324800d76a86ee1e64f1.tar.xz
Clean up startup for the pusher (#6558)
* Remove redundant python2 support code

`str.decode()` doesn't exist on python3, so presumably this code was doing
nothing

* Filter out pushers with corrupt data

When we get a row with unparsable json, drop the row, rather than returning a
row with null `data`, which will then cause an explosion later on.

* Improve logging when we can't start a pusher

Log the ID to help us understand the problem

* Make email pusher setup more robust

We know we'll have a `data` member, since that comes from the database. What we
*don't* know is if that is a dict, and if that has a `brand` member, and if
that member is a string.

Diffstat (limited to 'synapse/push/pusher.py')
-rw-r--r--synapse/push/pusher.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/synapse/push/pusher.py b/synapse/push/pusher.py
index f277aeb131..8ad0bf5936 100644
--- a/synapse/push/pusher.py
+++ b/synapse/push/pusher.py
@@ -80,9 +80,11 @@ class PusherFactory(object):
         return EmailPusher(self.hs, pusherdict, mailer)
 
     def _app_name_from_pusherdict(self, pusherdict):
-        if "data" in pusherdict and "brand" in pusherdict["data"]:
-            app_name = pusherdict["data"]["brand"]
-        else:
-            app_name = self.config.email_app_name
+        data = pusherdict["data"]
 
-        return app_name
+        if isinstance(data, dict):
+            brand = data.get("brand")
+            if isinstance(brand, str):
+                return brand
+
+        return self.config.email_app_name