summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2018-07-23 15:24:21 +0100
committerErik Johnston <erik@matrix.org>2018-07-23 15:24:21 +0100
commit999bcf9d016fb7fd9ad5a9daf4f0ec6d25a10717 (patch)
tree76ad8cbf664e34cc07b45b3b851d3f04c76668f3 /synapse
parentMerge pull request #3579 from matrix-org/erikj/stateless_contexts_4 (diff)
downloadsynapse-999bcf9d016fb7fd9ad5a9daf4f0ec6d25a10717.tar.xz
Fix EventContext when using workers
We were:
  1. Not correctly setting all attributes
  2. Using defer.inlineCallbacks in a non-generator
Diffstat (limited to 'synapse')
-rw-r--r--synapse/events/snapshot.py14
1 files changed, 7 insertions, 7 deletions
diff --git a/synapse/events/snapshot.py b/synapse/events/snapshot.py
index a6d7bf5700..e31eceb921 100644
--- a/synapse/events/snapshot.py
+++ b/synapse/events/snapshot.py
@@ -82,6 +82,11 @@ class EventContext(object):
         "_fetching_state_deferred",
     ]
 
+    def __init__(self):
+        self.prev_state_events = []
+        self.rejected = False
+        self.app_service = None
+
     @staticmethod
     def with_state(state_group, current_state_ids, prev_state_ids,
                    prev_group=None, delta_ids=None):
@@ -103,11 +108,6 @@ class EventContext(object):
         context.prev_group = prev_group
         context.delta_ids = delta_ids
 
-        context.prev_state_events = []
-
-        context.rejected = False
-        context.app_service = None
-
         return context
 
     def serialize(self, event):
@@ -143,7 +143,6 @@ class EventContext(object):
         }
 
     @staticmethod
-    @defer.inlineCallbacks
     def deserialize(store, input):
         """Converts a dict that was produced by `serialize` back into a
         EventContext.
@@ -162,6 +161,7 @@ class EventContext(object):
         context._prev_state_id = input["prev_state_id"]
         context._event_type = input["event_type"]
         context._event_state_key = input["event_state_key"]
+        context._fetching_state_deferred = None
 
         context.state_group = input["state_group"]
         context.prev_group = input["prev_group"]
@@ -174,7 +174,7 @@ class EventContext(object):
         if app_service_id:
             context.app_service = store.get_app_service_by_id(app_service_id)
 
-        defer.returnValue(context)
+        return context
 
     @defer.inlineCallbacks
     def get_current_state_ids(self, store):