Merge pull request #6161 from matrix-org/erikj/dont_regen_user_id_on_failure
Don't regenerate numeric user ID if registration fails.pull/6179/head
						commit
						2cb7466993
					
				|  | @ -0,0 +1 @@ | |||
| Fix bug where guest account registration can wedge after restart. | ||||
|  | @ -217,10 +217,9 @@ class RegistrationHandler(BaseHandler): | |||
| 
 | ||||
|         else: | ||||
|             # autogen a sequential user ID | ||||
|             attempts = 0 | ||||
|             user = None | ||||
|             while not user: | ||||
|                 localpart = yield self._generate_user_id(attempts > 0) | ||||
|                 localpart = yield self._generate_user_id() | ||||
|                 user = UserID(localpart, self.hs.hostname) | ||||
|                 user_id = user.to_string() | ||||
|                 yield self.check_user_id_not_appservice_exclusive(user_id) | ||||
|  | @ -238,7 +237,6 @@ class RegistrationHandler(BaseHandler): | |||
|                     # if user id is taken, just generate another | ||||
|                     user = None | ||||
|                     user_id = None | ||||
|                     attempts += 1 | ||||
| 
 | ||||
|         if not self.hs.config.user_consent_at_registration: | ||||
|             yield self._auto_join_rooms(user_id) | ||||
|  | @ -379,10 +377,10 @@ class RegistrationHandler(BaseHandler): | |||
|                 ) | ||||
| 
 | ||||
|     @defer.inlineCallbacks | ||||
|     def _generate_user_id(self, reseed=False): | ||||
|         if reseed or self._next_generated_user_id is None: | ||||
|     def _generate_user_id(self): | ||||
|         if self._next_generated_user_id is None: | ||||
|             with (yield self._generate_user_id_linearizer.queue(())): | ||||
|                 if reseed or self._next_generated_user_id is None: | ||||
|                 if self._next_generated_user_id is None: | ||||
|                     self._next_generated_user_id = ( | ||||
|                         yield self.store.find_next_generated_user_id_localpart() | ||||
|                     ) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Erik Johnston
						Erik Johnston