Safer execution

This commit is contained in:
Travis Ralston 2018-11-22 08:47:35 -07:00 committed by Brendan Abolivier
parent b26d8cea66
commit 0463d9ba75
2 changed files with 16 additions and 11 deletions

View file

@ -110,6 +110,7 @@ class FederationHandler(BaseHandler):
self.hs = hs self.hs = hs
self.clock = hs.get_clock()
self.store = hs.get_datastore() # type: synapse.storage.DataStore self.store = hs.get_datastore() # type: synapse.storage.DataStore
self.federation_client = hs.get_federation_client() self.federation_client = hs.get_federation_client()
self.federation_sender = hs.get_federation_sender() self.federation_sender = hs.get_federation_sender()
@ -1435,7 +1436,7 @@ class FederationHandler(BaseHandler):
except Exception: except Exception:
# We're going to retry, but we should log the error # We're going to retry, but we should log the error
logger.exception("Error auto-accepting invite on attempt %d" % attempt) logger.exception("Error auto-accepting invite on attempt %d" % attempt)
yield self.hs.get_clock().sleep(1) yield self.clock.sleep(1)
if not joined: if not joined:
logger.error("Giving up on trying to auto-accept invite: too many attempts") logger.error("Giving up on trying to auto-accept invite: too many attempts")

View file

@ -455,6 +455,7 @@ class RoomMemberHandler(object):
prev_events_and_hashes=prev_events_and_hashes, prev_events_and_hashes=prev_events_and_hashes,
content=content, content=content,
) )
if effective_membership_state == Membership.JOIN:
logcontext.run_in_background( logcontext.run_in_background(
self._send_merged_user_invites, self._send_merged_user_invites,
requester, room_id, requester, room_id,
@ -479,12 +480,15 @@ class RoomMemberHandler(object):
if self.hs.is_mine(child) or child_id == requester.user.to_string(): if self.hs.is_mine(child) or child_id == requester.user.to_string():
# TODO: Handle auto-invite for local users (not a priority) # TODO: Handle auto-invite for local users (not a priority)
continue continue
self.update_membership( try:
yield self.update_membership(
requester=requester, requester=requester,
target=child, target=child,
room_id=room_id, room_id=room_id,
action="invite", action="invite",
) )
except Exception:
logger.exception("Failed to invite %s to %s" % (child_id, room_id))
@defer.inlineCallbacks @defer.inlineCallbacks
def send_membership_event( def send_membership_event(