Merge pull request #2342 from matrix-org/erikj/pusher_pool_instantiate

Fix bug where pusherpool didn't start and broke some rooms
This commit is contained in:
Erik Johnston 2017-07-06 18:08:43 +01:00 committed by GitHub
commit 58dc1f2c78
3 changed files with 11 additions and 10 deletions

View File

@ -76,6 +76,7 @@ class FederationHandler(BaseHandler):
self.keyring = hs.get_keyring() self.keyring = hs.get_keyring()
self.action_generator = hs.get_action_generator() self.action_generator = hs.get_action_generator()
self.is_mine_id = hs.is_mine_id self.is_mine_id = hs.is_mine_id
self.pusher_pool = hs.get_pusherpool()
self.replication_layer.set_handler(self) self.replication_layer.set_handler(self)
@ -1426,7 +1427,7 @@ class FederationHandler(BaseHandler):
if not backfilled: if not backfilled:
# this intentionally does not yield: we don't care about the result # this intentionally does not yield: we don't care about the result
# and don't need to wait for it. # and don't need to wait for it.
preserve_fn(self.hs.get_pusherpool().on_new_notifications)( preserve_fn(self.pusher_pool.on_new_notifications)(
event_stream_id, max_stream_id event_stream_id, max_stream_id
) )

View File

@ -50,6 +50,8 @@ class MessageHandler(BaseHandler):
self.pagination_lock = ReadWriteLock() self.pagination_lock = ReadWriteLock()
self.pusher_pool = hs.get_pusherpool()
# We arbitrarily limit concurrent event creation for a room to 5. # We arbitrarily limit concurrent event creation for a room to 5.
# This is to stop us from diverging history *too* much. # This is to stop us from diverging history *too* much.
self.limiter = Limiter(max_count=5) self.limiter = Limiter(max_count=5)
@ -610,7 +612,7 @@ class MessageHandler(BaseHandler):
# this intentionally does not yield: we don't care about the result # this intentionally does not yield: we don't care about the result
# and don't need to wait for it. # and don't need to wait for it.
preserve_fn(self.hs.get_pusherpool().on_new_notifications)( preserve_fn(self.pusher_pool.on_new_notifications)(
event_stream_id, max_stream_id event_stream_id, max_stream_id
) )

View File

@ -73,6 +73,7 @@ class PushersSetRestServlet(ClientV1RestServlet):
def __init__(self, hs): def __init__(self, hs):
super(PushersSetRestServlet, self).__init__(hs) super(PushersSetRestServlet, self).__init__(hs)
self.notifier = hs.get_notifier() self.notifier = hs.get_notifier()
self.pusher_pool = self.hs.get_pusherpool()
@defer.inlineCallbacks @defer.inlineCallbacks
def on_POST(self, request): def on_POST(self, request):
@ -81,12 +82,10 @@ class PushersSetRestServlet(ClientV1RestServlet):
content = parse_json_object_from_request(request) content = parse_json_object_from_request(request)
pusher_pool = self.hs.get_pusherpool()
if ('pushkey' in content and 'app_id' in content if ('pushkey' in content and 'app_id' in content
and 'kind' in content and and 'kind' in content and
content['kind'] is None): content['kind'] is None):
yield pusher_pool.remove_pusher( yield self.pusher_pool.remove_pusher(
content['app_id'], content['pushkey'], user_id=user.to_string() content['app_id'], content['pushkey'], user_id=user.to_string()
) )
defer.returnValue((200, {})) defer.returnValue((200, {}))
@ -109,14 +108,14 @@ class PushersSetRestServlet(ClientV1RestServlet):
append = content['append'] append = content['append']
if not append: if not append:
yield pusher_pool.remove_pushers_by_app_id_and_pushkey_not_user( yield self.pusher_pool.remove_pushers_by_app_id_and_pushkey_not_user(
app_id=content['app_id'], app_id=content['app_id'],
pushkey=content['pushkey'], pushkey=content['pushkey'],
not_user_id=user.to_string() not_user_id=user.to_string()
) )
try: try:
yield pusher_pool.add_pusher( yield self.pusher_pool.add_pusher(
user_id=user.to_string(), user_id=user.to_string(),
access_token=requester.access_token_id, access_token=requester.access_token_id,
kind=content['kind'], kind=content['kind'],
@ -152,6 +151,7 @@ class PushersRemoveRestServlet(RestServlet):
self.hs = hs self.hs = hs
self.notifier = hs.get_notifier() self.notifier = hs.get_notifier()
self.auth = hs.get_v1auth() self.auth = hs.get_v1auth()
self.pusher_pool = self.hs.get_pusherpool()
@defer.inlineCallbacks @defer.inlineCallbacks
def on_GET(self, request): def on_GET(self, request):
@ -161,10 +161,8 @@ class PushersRemoveRestServlet(RestServlet):
app_id = parse_string(request, "app_id", required=True) app_id = parse_string(request, "app_id", required=True)
pushkey = parse_string(request, "pushkey", required=True) pushkey = parse_string(request, "pushkey", required=True)
pusher_pool = self.hs.get_pusherpool()
try: try:
yield pusher_pool.remove_pusher( yield self.pusher_pool.remove_pusher(
app_id=app_id, app_id=app_id,
pushkey=pushkey, pushkey=pushkey,
user_id=user.to_string(), user_id=user.to_string(),