* Kill off redundant SynapseRequestFactory
We already get the Site via the Channel, so there's no need for a dedicated
RequestFactory: we can just use the right constructor.
* Workaround for error when fetching notary's own key
As a notary server, when we return our own keys, include all of our signing
keys in verify_keys.
This is a workaround for #6596.
==========================
This release fixes some regressions introduced in Synapse 1.7.0 and 1.7.1.
Bugfixes
--------
- Fix a regression introduced in Synapse 1.7.1 which caused errors when attempting to backfill rooms over federation. ([\#6576](https://github.com/matrix-org/synapse/issues/6576))
- Fix a bug introduced in Synapse 1.7.0 which caused an error on startup when upgrading from versions before 1.3.0. ([\#6578](https://github.com/matrix-org/synapse/issues/6578))
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEv27Axt/F4vrTL/8QOSor00I9eP8FAl38qxEACgkQOSor00I9
eP/i6gf9FD14MfGWbDekRBKvCp7x1AQNqBOjcRDdXVENq8lUyGZmgKPRzdQ889pJ
9QgzPGCIo37qfIYNS1xWIU/53iTKSH50UamJQqViROW5+E3kOHozF2yzRxuoiNZP
gpPolPrQjC6kZo04zXu1N/BCTN4KUOjeXgrr10WtlRMatkNu3+diJ5cpPewFib4O
Gl2GTTp/scLfGTtBdwUEpWD3YkO6rAlYyDfNFNZwb9ua8Rf+NDB/eV0djJ5qzO0U
AeOt0JcYOeut/7vi5HkqZWl5ZxpIYydM6mHibv6Bijpzr2XV1pFAxWqsqmPcdqH2
oL9Ml0pNJ++6m4CRSMyLPfWvI1OuEQ==
=sfNw
-----END PGP SIGNATURE-----
Merge tag 'v1.7.2'
Synapse 1.7.2 (2019-12-20)
==========================
This release fixes some regressions introduced in Synapse 1.7.0 and 1.7.1.
Bugfixes
--------
- Fix a regression introduced in Synapse 1.7.1 which caused errors when attempting to backfill rooms over federation. ([\#6576](https://github.com/matrix-org/synapse/issues/6576))
- Fix a bug introduced in Synapse 1.7.0 which caused an error on startup when upgrading from versions before 1.3.0. ([\#6578](https://github.com/matrix-org/synapse/issues/6578))
If acme was enabled, the sdnotify startup hook would never be run because we
would try to add it to a hook which had already fired.
There's no need to delay it: we can sdnotify as soon as we've started the
listeners.
* Remove redundant python2 support code
`str.decode()` doesn't exist on python3, so presumably this code was doing
nothing
* Filter out pushers with corrupt data
When we get a row with unparsable json, drop the row, rather than returning a
row with null `data`, which will then cause an explosion later on.
* Improve logging when we can't start a pusher
Log the ID to help us understand the problem
* Make email pusher setup more robust
We know we'll have a `data` member, since that comes from the database. What we
*don't* know is if that is a dict, and if that has a `brand` member, and if
that member is a string.