Merge branch 'release-v1.3.1' into matrix-org-hotfixes

matrix-org-hotfixes-identity
Richard van der Hoff 2019-08-17 09:22:30 +01:00
commit 80898481ab
9 changed files with 80 additions and 22 deletions

View File

@ -1,3 +1,28 @@
Synapse 1.3.1 (2019-08-17)
==========================
Features
--------
- Drop hard dependency on `sdnotify` python package. ([\#5871](https://github.com/matrix-org/synapse/issues/5871))
Bugfixes
--------
- Fix startup issue (hang on ACME provisioning) due to ordering of Twisted reactor startup. Thanks to @chrismoos for supplying the fix. ([\#5867](https://github.com/matrix-org/synapse/issues/5867))
Synapse 1.3.0 (2019-08-15)
==========================
Bugfixes
--------
- Fix 500 Internal Server Error on `publicRooms` when the public room list was
cached. ([\#5851](https://github.com/matrix-org/synapse/issues/5851))
Synapse 1.3.0rc1 (2019-08-13) Synapse 1.3.0rc1 (2019-08-13)
========================== ==========================

View File

@ -419,12 +419,11 @@ If Synapse is not configured with an SMTP server, password reset via email will
## Registering a user ## Registering a user
You will need at least one user on your server in order to use a Matrix The easiest way to create a new user is to do so from a client like [Riot](https://riot.im).
client. Users can be registered either via a Matrix client, or via a
commandline script.
To get started, it is easiest to use the command line to register new Alternatively you can do so from the command line if you have installed via pip.
users. This can be done as follows:
This can be done as follows:
``` ```
$ source ~/synapse/env/bin/activate $ source ~/synapse/env/bin/activate

View File

@ -1 +0,0 @@
Remove libsqlite3-dev from required build dependencies.

View File

@ -1,2 +0,0 @@
Fix 500 Internal Server Error on `publicRooms` when the public room list was
cached.

13
debian/changelog vendored
View File

@ -1,8 +1,19 @@
matrix-synapse-py3 (1.3.0) UNRELEASED; urgency=medium matrix-synapse-py3 (1.3.1) stable; urgency=medium
* New synapse release 1.3.1.
-- Synapse Packaging team <packages@matrix.org> Sat, 17 Aug 2019 09:15:49 +0100
matrix-synapse-py3 (1.3.0) stable; urgency=medium
[ Andrew Morgan ] [ Andrew Morgan ]
* Remove libsqlite3-dev from required build dependencies. * Remove libsqlite3-dev from required build dependencies.
[ Synapse Packaging team ]
* New synapse release 1.3.0.
-- Synapse Packaging team <packages@matrix.org> Thu, 15 Aug 2019 12:04:23 +0100
matrix-synapse-py3 (1.2.0) stable; urgency=medium matrix-synapse-py3 (1.2.0) stable; urgency=medium
[ Amber Brown ] [ Amber Brown ]

View File

@ -35,4 +35,4 @@ try:
except ImportError: except ImportError:
pass pass
__version__ = "1.3.0rc1" __version__ = "1.3.1"

View File

@ -17,10 +17,10 @@ import gc
import logging import logging
import os import os
import signal import signal
import socket
import sys import sys
import traceback import traceback
import sdnotify
from daemonize import Daemonize from daemonize import Daemonize
from twisted.internet import defer, error, reactor from twisted.internet import defer, error, reactor
@ -246,13 +246,12 @@ def start(hs, listeners=None):
def handle_sighup(*args, **kwargs): def handle_sighup(*args, **kwargs):
# Tell systemd our state, if we're using it. This will silently fail if # Tell systemd our state, if we're using it. This will silently fail if
# we're not using systemd. # we're not using systemd.
sd_channel = sdnotify.SystemdNotifier() sdnotify(b"RELOADING=1")
sd_channel.notify("RELOADING=1")
for i in _sighup_callbacks: for i in _sighup_callbacks:
i(hs) i(hs)
sd_channel.notify("READY=1") sdnotify(b"READY=1")
signal.signal(signal.SIGHUP, handle_sighup) signal.signal(signal.SIGHUP, handle_sighup)
@ -308,16 +307,12 @@ def setup_sdnotify(hs):
# Tell systemd our state, if we're using it. This will silently fail if # Tell systemd our state, if we're using it. This will silently fail if
# we're not using systemd. # we're not using systemd.
sd_channel = sdnotify.SystemdNotifier()
hs.get_reactor().addSystemEventTrigger( hs.get_reactor().addSystemEventTrigger(
"after", "after", "startup", sdnotify, b"READY=1\nMAINPID=%i" % (os.getpid(),)
"startup",
lambda: sd_channel.notify("READY=1\nMAINPID=%s" % (os.getpid())),
) )
hs.get_reactor().addSystemEventTrigger( hs.get_reactor().addSystemEventTrigger(
"before", "shutdown", lambda: sd_channel.notify("STOPPING=1") "before", "shutdown", sdnotify, b"STOPPING=1"
) )
@ -414,3 +409,35 @@ class _DeferredResolutionReceiver(object):
def resolutionComplete(self): def resolutionComplete(self):
self._deferred.callback(()) self._deferred.callback(())
self._receiver.resolutionComplete() self._receiver.resolutionComplete()
sdnotify_sockaddr = os.getenv("NOTIFY_SOCKET")
def sdnotify(state):
"""
Send a notification to systemd, if the NOTIFY_SOCKET env var is set.
This function is based on the sdnotify python package, but since it's only a few
lines of code, it's easier to duplicate it here than to add a dependency on a
package which many OSes don't include as a matter of principle.
Args:
state (bytes): notification to send
"""
if not isinstance(state, bytes):
raise TypeError("sdnotify should be called with a bytes")
if not sdnotify_sockaddr:
return
addr = sdnotify_sockaddr
if addr[0] == "@":
addr = "\0" + addr[1:]
try:
with socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) as sock:
sock.connect(addr)
sock.sendall(state)
except Exception as e:
# this is a bit surprising, since we don't expect to have a NOTIFY_SOCKET
# unless systemd is expecting us to notify it.
logger.warning("Unable to send notification to systemd: %s", e)

View File

@ -447,7 +447,7 @@ def setup(config_options):
reactor.stop() reactor.stop()
sys.exit(1) sys.exit(1)
reactor.addSystemEventTrigger("before", "startup", start) reactor.callWhenRunning(start)
return hs return hs

View File

@ -72,7 +72,6 @@ REQUIREMENTS = [
"netaddr>=0.7.18", "netaddr>=0.7.18",
"Jinja2>=2.9", "Jinja2>=2.9",
"bleach>=1.4.3", "bleach>=1.4.3",
"sdnotify>=0.3",
] ]
CONDITIONAL_REQUIREMENTS = { CONDITIONAL_REQUIREMENTS = {