* 'develop' of github.com:matrix-org/synapse: (199 commits)
Extend web_client_location to handle absolute URLs (#7006)
Add some benchmarks for LruCache (#6446)
Convert http.HTTPStatus objects to their int equivalent (#7188)
Reduce the number of calls to `resource.getrusage` (#7183)
Remove some `run_in_background` calls in replication code (#7203)
Revert "Revert "Merge pull request #7153 from matrix-org/babolivier/sso_whitelist_login_fallback""
Revert "Revert "Improve the UX of the login fallback when using SSO (#7152)""
Revert "Merge pull request #7153 from matrix-org/babolivier/sso_whitelist_login_fallback"
Revert "Improve the UX of the login fallback when using SSO (#7152)"
tweak changelog
1.12.3
Update docstring per review comments
Fix device list update stream ids going backward (#7158)
Fix the debian build in a better way. (#7212)
Fix changelog wording
1.12.2
Pin Pillow>=4.3.0,<7.1.0 to fix dep issue
1.12.1
review comment
1.12.1
...
It was originally implemented by pulling the full auth chain of all
state sets out of the database and doing set comparison. However, that
can take a lot work if the state and auth chains are large.
Instead, lets try and fetch the auth chains at the same time and
calculate the difference on the fly, allowing us to bail early if all
the auth chains converge. Assuming that the auth chains do converge more
often than not, this should improve performance. Hopefully.
The state res v2 algorithm only cares about the difference between auth
chains, so we can pass in the known common state to the `get_auth_chain`
storage function so that it can ignore those events.
These are easier to work with than the strings and we normally have one around.
This fixes `FederationHander._persist_auth_tree` which was passing a
RoomVersion object into event_auth.check instead of a string.
Fixes a bug where rejected events were persisted with the wrong state group.
Also fixes an occasional internal-server-error when receiving events over
federation which are rejected and (possibly because they are
backwards-extremities) have no prev_group.
Fixes#6289.
Remove all the "double return" statements which were a result of us removing all the instances of
```
defer.returnValue(...)
return
```
statements when we switched to python3 fully.
ExpiringCache required that `start()` be called before it would actually
start expiring entries. A number of places didn't do that.
This PR removes `start` from ExpiringCache, and automatically starts
backround reaping process on creation instead.