Closed mpwp closed 6 years ago
I think in order to help we'd need a larger stacktrace than that one line. It doesn't give any context to where it is failing.
Yes, sure! Here it is:
2018-05-10 13:06:55,937 - synapse.http.server - 196 - ERROR - PUT-8 - Failed handle request synapse.http.server._async_render on <synapse.rest.ClientRestResource object at 0x14e6f45231d0>: <SynapseRequest at 0x14e6d3d888c0 method=PUT uri=### clientproto=HTTP/1.1 site=8448>: Traceback (most recent call last):
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 653, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1442, in gotResult
_inlineCallbacks(r, g, deferred)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
--- <exception caught here> ---
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/http/server.py", line 167, in wrapped_request_handler
yield request_handler(self, request, request_metrics)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/http/server.py", line 312, in _async_render
callback_return = yield callback(request, **kwargs)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/rest/client/v1/room.py", line 210, in on_POST
txn_id=txn_id,
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/handlers/message.py", line 575, in create_and_send_nonmember_event
txn_id=txn_id
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/handlers/message.py", line 493, in create_event
prev_events_and_hashes=prev_events_and_hashes,
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/util/metrics.py", line 95, in measured_func
r = yield func(self, *args, **kwargs)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1386, in _inlineCallbacks
result = g.send(result)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/handlers/message.py", line 655, in create_new_client_event
builder, self.server_name, signing_key
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/crypto/event_signing.py", line 110, in add_hashes_and_signatures
name, digest = compute_content_hash(event, hash_algorithm=hash_algorithm)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/synapse/crypto/event_signing.py", line 71, in compute_content_hash
event_json_bytes = encode_canonical_json(event_json)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/canonicaljson.py", line 142, in encode_canonical_json
return _unascii(s)
File "/usr/local/_synapse/synapse/lib/python2.7/site-packages/canonicaljson.py", line 121, in _unascii
chunks.append(unichr(c))
exceptions.ValueError: unichr() arg not in range(0x10000) (narrow Python build)
Oh boy, this looks like canonicaljson isn't happy with the characters. Any ideas @richvdh?
I have the same problem after a straight upgrade (via pip in venv) from Synapse 0.26.1 to 0.27.4:
Starting ...
2018-04-26 09:39:53,217 - synapse.python_dependencies - 120 - INFO - None - Using 'saml2' version '4.5.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/saml2/__init__.pyc' to satisfy 'pysaml2>=3.0.0'
2018-04-26 09:39:53,218 - synapse.python_dependencies - 120 - INFO - None - Using 'msgpack' version None from '/var/synapse/.synapse/lib/python2.7/site-packages/msgpack/__init__.pyc' to satisfy 'msgpack-python>=0.3.0'
2018-04-26 09:39:53,218 - synapse.python_dependencies - 120 - INFO - None - Using 'daemonize' version '2.4.7' from '/var/synapse/.synapse/lib/python2.7/site-packages/daemonize.pyc' to satisfy 'daemonize'
2018-04-26 09:39:53,219 - synapse.python_dependencies - 120 - INFO - None - Using 'frozendict' version None from '/var/synapse/.synapse/lib/python2.7/site-packages/frozendict/__init__.pyc' to satisfy 'frozendict>=0.4'
2018-04-26 09:39:53,220 - synapse.python_dependencies - 120 - INFO - None - Using 'OpenSSL' version '17.5.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/OpenSSL/__init__.pyc' to satisfy 'pyopenssl>=0.14'
2018-04-26 09:39:53,220 - synapse.python_dependencies - 120 - INFO - None - Using 'pydenticon' version None from '/var/synapse/.synapse/lib/python2.7/site-packages/pydenticon/__init__.pyc' to satisfy 'pydenticon'
2018-04-26 09:39:53,221 - synapse.python_dependencies - 120 - INFO - None - Using 'pymacaroons' version '0.9.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/pymacaroons/__init__.pyc' to satisfy 'pymacaroons-pynacl'
2018-04-26 09:39:53,222 - synapse.python_dependencies - 120 - INFO - None - Using 'service_identity' version '17.0.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/service_identity/__init__.pyc' to satisfy 'service_identity>=1.0.0'
2018-04-26 09:39:53,222 - synapse.python_dependencies - 120 - INFO - None - Using 'signedjson' version '1.0.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/signedjson/__init__.pyc' to satisfy 'signedjson>=1.0.0'
2018-04-26 09:39:53,223 - synapse.python_dependencies - 120 - INFO - None - Using 'yaml' version '3.12' from '/var/synapse/.synapse/lib/python2.7/site-packages/yaml/__init__.pyc' to satisfy 'pyyaml'
2018-04-26 09:39:53,224 - synapse.python_dependencies - 120 - INFO - None - Using 'unpaddedbase64' version '1.1.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/unpaddedbase64.pyc' to satisfy 'unpaddedbase64>=1.1.0'
2018-04-26 09:39:53,225 - synapse.python_dependencies - 120 - INFO - None - Using 'PIL' version '5.1.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/PIL/__init__.pyc' to satisfy 'pillow'
2018-04-26 09:39:53,225 - synapse.python_dependencies - 120 - INFO - None - Using 'pyasn1' version '0.4.2' from '/var/synapse/.synapse/lib/python2.7/site-packages/pyasn1/__init__.pyc' to satisfy 'pyasn1'
2018-04-26 09:39:53,226 - synapse.python_dependencies - 120 - INFO - None - Using 'phonenumbers' version '8.9.4' from '/var/synapse/.synapse/lib/python2.7/site-packages/phonenumbers/__init__.pyc' to satisfy 'phonenumbers>=8.2.0'
2018-04-26 09:39:53,227 - synapse.python_dependencies - 120 - INFO - None - Using 'nacl' version '1.2.1' from '/var/synapse/.synapse/lib/python2.7/site-packages/nacl/__init__.pyc' to satisfy 'pynacl>=1.2.1'
2018-04-26 09:39:53,227 - synapse.python_dependencies - 120 - INFO - None - Using 'nacl.bindings' version '1.2.1' from '/var/synapse/.synapse/lib/python2.7/site-packages/nacl/__init__.pyc' to satisfy 'pynacl>=1.2.1'
2018-04-26 09:39:53,228 - synapse.python_dependencies - 120 - INFO - None - Using 'jsonschema' version '2.6.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/jsonschema/__init__.pyc' to satisfy 'jsonschema>=2.5.1'
2018-04-26 09:39:53,229 - synapse.python_dependencies - 120 - INFO - None - Using 'blist' version '1.3.6' from '/var/synapse/.synapse/lib/python2.7/site-packages/blist/__init__.pyc' to satisfy 'blist'
2018-04-26 09:39:53,229 - synapse.python_dependencies - 120 - INFO - None - Using 'twisted' version '17.9.0' from '/var/synapse/.synapse/lib/python2.7/site-packages/twisted/__init__.pyc' to satisfy 'Twisted>=16.0.0'
2018-04-26 09:39:53,230 - synapse.python_dependencies - 120 - INFO - None - Using 'bcrypt' version u'3.1.4' from '/var/synapse/.synapse/lib/python2.7/site-packages/bcrypt/__init__.pyc' to satisfy 'bcrypt'
2018-04-26 09:39:53,231 - synapse.python_dependencies - 120 - INFO - None - Using 'canonicaljson' version '1.1.3' from '/var/synapse/.synapse/lib/python2.7/site-packages/canonicaljson.pyc' to satisfy 'canonicaljson>=1.1.3'
2018-04-26 09:39:53,334 - synapse.app.homeserver - 305 - INFO - None - Server hostname: localhost
2018-04-26 09:39:53,338 - synapse.app.homeserver - 306 - INFO - None - Server version: Synapse/0.27.4
2018-04-26 09:39:53,398 - synapse.app.homeserver - 324 - INFO - None - Preparing database: sqlite3...
2018-04-26 09:39:53,423 - synapse.storage.prepare_database - 224 - INFO - None - Upgrading schema to v48
2018-04-26 09:39:53,435 - synapse.app.homeserver - 342 - INFO - None - Database prepared in sqlite3.
2018-04-26 09:39:53,435 - synapse.server - 174 - INFO - None - Setting up.
2018-04-26 09:39:57,261 - synapse.storage.event_push_actions - 475 - INFO - None - Searching for stream ordering 1 month ago
2018-04-26 09:39:57,266 - synapse.storage.event_push_actions - 481 - INFO - None - Found stream ordering 1 month ago: it's 1306542
2018-04-26 09:39:57,267 - synapse.storage.event_push_actions - 483 - INFO - None - Searching for stream ordering 1 day ago
2018-04-26 09:39:57,272 - synapse.storage.event_push_actions - 489 - INFO - None - Found stream ordering 1 day ago: it's 1321169
2018-04-26 09:42:00,658 - synapse.server - 176 - INFO - None - Finished setting up.
2018-04-26 09:42:00,662 - synapse.handlers.auth - 75 - INFO - None - Extra password_providers: []
2018-04-26 09:42:00,665 - synapse.push.pusher - 42 - INFO - None - email enable notifs: False
2018-04-26 09:42:00,821 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <twisted.web.resource.EncodingResourceWrapper object at 0x7fce65a6aed0> to path /_matrix/client/r0
2018-04-26 09:42:00,822 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching FilePath('/var/synapse/.synapse/lib/python2.7/site-packages/synapse/static') to path /_matrix/static
2018-04-26 09:42:00,823 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <twisted.web.resource.EncodingResourceWrapper object at 0x7fce65a6aed0> to path /_matrix/client/versions
2018-04-26 09:42:00,823 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <twisted.web.resource.EncodingResourceWrapper object at 0x7fce65a6aed0> to path /_matrix/client/unstable
2018-04-26 09:42:00,824 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.media.v1.media_repository.MediaRepositoryResource instance at 0x7fce65a598c0> to path /_matrix/media/v1
2018-04-26 09:42:00,825 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <twisted.web.resource.EncodingResourceWrapper object at 0x7fce65a6aed0> to path /_matrix/client/api/v1
2018-04-26 09:42:00,826 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.media.v0.content_repository.ContentRepoResource instance at 0x7fce65a45a28> to path /_matrix/content
2018-04-26 09:42:00,827 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.key.v2.KeyApiV2Resource instance at 0x7fce65a59b90> to path /_matrix/key/v2
2018-04-26 09:42:00,828 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <twisted.web.resource.EncodingResourceWrapper object at 0x7fce65a6aed0> to path /_matrix/client/v2_alpha
2018-04-26 09:42:00,829 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching FilePath('/var/synapse/.synapse/lib/python2.7/site-packages/syweb/webclient') to path /_matrix/client
2018-04-26 09:42:00,830 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.key.v1.server_key_resource.LocalKey instance at 0x7fce65a59bd8> to path /_matrix/key/v1
2018-04-26 09:42:00,831 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.media.v1.media_repository.MediaRepositoryResource instance at 0x7fce65a598c0> to path /_matrix/media/r0
2018-04-26 09:42:00,832 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.federation.transport.server.TransportLayerServer object at 0x7fce65a6af90> to path /_matrix/federation/v1
2018-04-26 09:42:00,837 - twisted - 131 - INFO - None - SynapseSite (TLS) starting on 8448
2018-04-26 09:42:00,838 - twisted - 131 - INFO - None - Starting factory <synapse.http.site.SynapseSite instance at 0x7fce65a06d40>
2018-04-26 09:42:00,840 - synapse.app.homeserver - 158 - INFO - None - Synapse now listening on port 8448
2018-04-26 09:42:00,868 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.ClientRestResource object at 0x7fce65a030d0> to path /_matrix/client/r0
2018-04-26 09:42:00,869 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching FilePath('/var/synapse/.synapse/lib/python2.7/site-packages/synapse/static') to path /_matrix/static
2018-04-26 09:42:00,870 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.ClientRestResource object at 0x7fce65a030d0> to path /_matrix/client/versions
2018-04-26 09:42:00,871 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.ClientRestResource object at 0x7fce65a030d0> to path /_matrix/client/unstable
2018-04-26 09:42:00,872 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.media.v1.media_repository.MediaRepositoryResource instance at 0x7fce65a598c0> to path /_matrix/media/v1
2018-04-26 09:42:00,872 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.ClientRestResource object at 0x7fce65a030d0> to path /_matrix/client/api/v1
2018-04-26 09:42:00,873 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.media.v0.content_repository.ContentRepoResource instance at 0x7fce659e2488> to path /_matrix/content
2018-04-26 09:42:00,874 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.key.v2.KeyApiV2Resource instance at 0x7fce659e2638> to path /_matrix/key/v2
2018-04-26 09:42:00,875 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.ClientRestResource object at 0x7fce65a030d0> to path /_matrix/client/v2_alpha
2018-04-26 09:42:00,876 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching FilePath('/var/synapse/.synapse/lib/python2.7/site-packages/syweb/webclient') to path /_matrix/client
2018-04-26 09:42:00,877 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.key.v1.server_key_resource.LocalKey instance at 0x7fce659e24d0> to path /_matrix/key/v1
2018-04-26 09:42:00,878 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.rest.media.v1.media_repository.MediaRepositoryResource instance at 0x7fce65a598c0> to path /_matrix/media/r0
2018-04-26 09:42:00,879 - synapse.util.httpresourcetree - 43 - INFO - None - Attaching <synapse.federation.transport.server.TransportLayerServer object at 0x7fce659e6d10> to path /_matrix/federation/v1
2018-04-26 09:42:00,881 - twisted - 131 - INFO - None - SynapseSite starting on 8008
2018-04-26 09:42:00,882 - twisted - 131 - INFO - None - Starting factory <synapse.http.site.SynapseSite instance at 0x7fce659e2878>
2018-04-26 09:42:00,884 - twisted - 131 - INFO - None - SynapseSite starting on 8008
2018-04-26 09:42:00,885 - synapse.app.homeserver - 158 - INFO - None - Synapse now listening on port 8008
started synapse.app.homeserver('homeserver.yaml')
...
...
2018-04-26 09:44:59,583 - synapse.access.http.8008 - 59 - INFO - PUT-79 - 96.13.231.25 - 8008 - Received request: PUT /_matrix/client/r0/rooms/!AFsEGZHXWuEnTVIScB:localhost/send/m.room.message/1524728701656
2018-04-26 09:44:59,585 - synapse.util.async - 287 - INFO - PUT-79 - Acquired uncontended limiter lock for key '!AFsEGZHXWuEnTVIScB:localhost'
2018-04-26 09:44:59,602 - synapse.util.async - 296 - INFO - PUT-79 - Releasing limiter lock for key '!AFsEGZHXWuEnTVIScB:localhost'
2018-04-26 09:44:59,605 - synapse.http.server - 196 - ERROR - PUT-79 - Failed handle request synapse.http.server._async_render on <synapse.rest.ClientRestResource object at 0x7fce65a030d0>: <XForwardedForRequest at 0x7fce64702758 method=PUT uri=/_matrix/client/r0/rooms/!AFsEGZHXWuEnTVIScB:localhost/send/m.room.message/1524728701656 clientproto=HTTP/1.1 site=8008>: Traceback (most recent call last):
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 653, in _runCallbacks
current.result = callback(current.result, *args, **kw)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1442, in gotResult
_inlineCallbacks(r, g, deferred)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
--- <exception caught here> ---
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/http/server.py", line 167, in wrapped_request_handler
yield request_handler(self, request, request_metrics)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/http/server.py", line 312, in _async_render
callback_return = yield callback(request, **kwargs)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/rest/client/v1/room.py", line 215, in on_POST
txn_id=txn_id,
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/handlers/message.py", line 564, in create_and_send_nonmember_event
txn_id=txn_id
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/handlers/message.py", line 489, in create_event
prev_event_ids=prev_event_ids,
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1384, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/python/failure.py", line 408, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/util/metrics.py", line 95, in measured_func
r = yield func(self, *args, **kwargs)
File "/var/synapse/.synapse/lib/python2.7/site-packages/twisted/internet/defer.py", line 1386, in _inlineCallbacks
result = g.send(result)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/handlers/message.py", line 635, in create_new_client_event
builder, self.server_name, signing_key
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/crypto/event_signing.py", line 110, in add_hashes_and_signatures
name, digest = compute_content_hash(event, hash_algorithm=hash_algorithm)
File "/var/synapse/.synapse/lib/python2.7/site-packages/synapse/crypto/event_signing.py", line 71, in compute_content_hash
event_json_bytes = encode_canonical_json(event_json)
File "/var/synapse/.synapse/lib/python2.7/site-packages/canonicaljson.py", line 142, in encode_canonical_json
return _unascii(s)
File "/var/synapse/.synapse/lib/python2.7/site-packages/canonicaljson.py", line 121, in _unascii
chunks.append(unichr(c))
exceptions.ValueError: unichr() arg not in range(0x10000) (narrow Python build)
2018-04-26 09:44:59,608 - synapse.access.http.8008 - 93 - INFO - PUT-79 - 96.13.231.25 - 8008 - {@tokodomo:localhost} Processed request: 24ms (12ms, 0ms) (1ms/9ms/1) 55B 500 "PUT /_matrix/client/r0/rooms/!AFsEGZHXWuEnTVIScB:localhost/send/m.room.message/1524728701656 HTTP/1.1" "Riot.im/0.8.7 (Linux; U; Android 8.1.0; Nexus 5X Build/OPM2.171019.02; Flavour GooglePlay; MatrixAndroidSDK 0.9.3)"
...
exceptions.ValueError: unichr() arg not in range(0x10000) (narrow Python build)
Oh man. It looks like some builds of python don't support unicode characters > 0x10000 in strings: http://wordaligned.org/articles/narrow-python
This is really a bug in https://github.com/matrix-org/python-canonicaljson. I have raised https://github.com/matrix-org/python-canonicaljson/issues/12.
given matrix-org/python-canonicaljson#12 closing this issue
sorry neil, let's keep this one open to track the bug on the synapse side
I overcame the issue by building/installing Python (with --enable-unicode=ucs4
-> wide version) and SQLite from source locally (to a local directory). On Debian it looks like this:
sudo apt-get install build-essential bzip2 libbz2-dev libncursesw5-dev lzma-dev liblz-dev liblzma-dev tk8.5-dev libreadline6 libreadline6-dev libssl-dev libgdbm-dev libc6-dev tk-dev libdb-dev
cd /var/synapse
mkdir tmpsrc
cd tmpsrc
wget https://www.sqlite.org/2018/sqlite-autoconf-3230100.tar.gz
tar -xf sqlite-autoconf-3230100.tar.gz
cd sqlite-autoconf-3230100
mkdir build
cd build
../configure --prefix=/var/synapse/.sqlite3 --disable-static CFLAGS="-DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_UNLOCK_NOTIFY -DSQLITE_ENABLE_UPDATE_DELETE_LIMIT -DSQLITE_MAX_SCHEMA_RETRY=25 -DSQLITE_OMIT_LOOKASIDE -DSQLITE_SECURE_DELETE -DSQLITE_SOUNDEX -DSQLITE_TEMP_STORE=1 -DSQLITE_THREADSAFE=1 -lm -O2"
make
make install
cd ../..
wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
tar -xf Python-2.7.15.tgz
cd Python-2.7.15/
mkdir build
cd build
LD_RUN_PATH=/var/synapse/.sqlite3/lib CXX=g++ ../configure --prefix=/var/synapse/.python2.7 --enable-unicode=ucs4 --enable-optimizations LDFLAGS="-L/var/synapse/.sqlite3/lib" CPPFLAGS="-I/var/synapse/.sqlite3/include"
LD_RUN_PATH=/var/synapse/.sqlite3/lib make
LD_RUN_PATH=/var/synapse/.sqlite3/lib make test
LD_RUN_PATH=/var/synapse/.sqlite3/lib make install
cd ../../..
wget https://bootstrap.pypa.io/get-pip.py
.python2.7/bin/python get-pip.py
rm get-pip.py
.python2.7/bin/pip install virtualenv
export LC_ALL=C
.python2.7/bin/virtualenv -p .python2.7/bin/python2.7 ~/.synapse
source ~/.synapse/bin/activate
pip install https://github.com/matrix-org/synapse/archive/v0.28.1.tar.gz
Emojis are back by installing canonicaljson from git:
pip install --upgrade git+https://github.com/matrix-org/python-canonicaljson/
Thank you very much!
Thanks for the feedback. canonicaljson 1.1.4 is now relased with the fix.
Description
Users can't send message with emoji (Internal server error).
This exception appears in the log:
exceptions.ValueError: unichr() arg not in range(0x10000) (narrow Python build)
The issue appeared 2 weeks ago, after I've got a hard time in updating the server and the database.. I don't know why but when updating via
pip
, it doesn't worked fine due to the cryptography library. So I did a new install withvirtualenv --system-site-packages
to use the py-cryptography from OpenBSD and it worked.There was also a big update of PostgreSQL, and I may have broken a thing or two at the time. As it seems an encoding issue, could it come from here?
Version information