summary refs log tree commit diff
path: root/synapse/storage/receipts.py
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2016-05-13 15:55:26 +0100
committerMark Haines <mjark@negativecurvature.net>2016-05-13 15:55:26 +0100
commita8affd606e7692865bdd9ddac5ecf770436d06df (patch)
tree6e1ab8695c67cc807d19ec5c3a867aa9e542620c /synapse/storage/receipts.py
parentMerge pull request #741 from negzi/create_user_with_expiry (diff)
parentAllow receipts for events we haven't seen in the db (diff)
downloadsynapse-a8affd606e7692865bdd9ddac5ecf770436d06df.tar.xz
Merge pull request #784 from matrix-org/markjh/receipts_fix
Allow receipts for events we haven't seen in the db
Diffstat (limited to 'synapse/storage/receipts.py')
-rw-r--r--synapse/storage/receipts.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/synapse/storage/receipts.py b/synapse/storage/receipts.py
index 94be820f86..fdcf28f3e1 100644
--- a/synapse/storage/receipts.py
+++ b/synapse/storage/receipts.py
@@ -249,9 +249,11 @@ class ReceiptsStore(SQLBaseStore):
             table="events",
             retcols=["topological_ordering", "stream_ordering"],
             keyvalues={"event_id": event_id},
+            allow_none=True
         )
-        topological_ordering = int(res["topological_ordering"])
-        stream_ordering = int(res["stream_ordering"])
+
+        topological_ordering = int(res["topological_ordering"]) if res else None
+        stream_ordering = int(res["stream_ordering"]) if res else None
 
         # We don't want to clobber receipts for more recent events, so we
         # have to compare orderings of existing receipts
@@ -264,7 +266,7 @@ class ReceiptsStore(SQLBaseStore):
         txn.execute(sql, (room_id, receipt_type, user_id))
         results = txn.fetchall()
 
-        if results:
+        if results and topological_ordering:
             for to, so, _ in results:
                 if int(to) > topological_ordering:
                     return False
@@ -294,7 +296,7 @@ class ReceiptsStore(SQLBaseStore):
             }
         )
 
-        if receipt_type == "m.read":
+        if receipt_type == "m.read" and topological_ordering:
             self._remove_push_actions_before_txn(
                 txn,
                 room_id=room_id,