forked from MirrorHub/synapse
Fix noisy "twisted.internet.task.TaskStopped" errors in logs
Fixes #4003
This commit is contained in:
parent
85129d7068
commit
f0ba34f581
2 changed files with 16 additions and 2 deletions
1
changelog.d/4546.bugfix
Normal file
1
changelog.d/4546.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix noisy "twisted.internet.task.TaskStopped" errors in logs
|
|
@ -28,7 +28,7 @@ from canonicaljson import encode_canonical_json
|
||||||
from prometheus_client import Counter
|
from prometheus_client import Counter
|
||||||
from signedjson.sign import sign_json
|
from signedjson.sign import sign_json
|
||||||
|
|
||||||
from twisted.internet import defer, protocol
|
from twisted.internet import defer, protocol, task
|
||||||
from twisted.internet.error import DNSLookupError
|
from twisted.internet.error import DNSLookupError
|
||||||
from twisted.internet.task import _EPSILON, Cooperator
|
from twisted.internet.task import _EPSILON, Cooperator
|
||||||
from twisted.web._newclient import ResponseDone
|
from twisted.web._newclient import ResponseDone
|
||||||
|
@ -286,7 +286,7 @@ class MatrixFederationHttpClient(object):
|
||||||
json,
|
json,
|
||||||
)
|
)
|
||||||
data = encode_canonical_json(json)
|
data = encode_canonical_json(json)
|
||||||
producer = FileBodyProducer(
|
producer = QuieterFileBodyProducer(
|
||||||
BytesIO(data),
|
BytesIO(data),
|
||||||
cooperator=self._cooperator,
|
cooperator=self._cooperator,
|
||||||
)
|
)
|
||||||
|
@ -839,3 +839,16 @@ def encode_query_args(args):
|
||||||
query_bytes = urllib.parse.urlencode(encoded_args, True)
|
query_bytes = urllib.parse.urlencode(encoded_args, True)
|
||||||
|
|
||||||
return query_bytes.encode('utf8')
|
return query_bytes.encode('utf8')
|
||||||
|
|
||||||
|
|
||||||
|
class QuieterFileBodyProducer(FileBodyProducer):
|
||||||
|
"""Wrapper for FileBodyProducer that avoids CRITICAL errors when the connection drops.
|
||||||
|
|
||||||
|
Workaround for https://github.com/matrix-org/synapse/issues/4003 /
|
||||||
|
https://twistedmatrix.com/trac/ticket/6528
|
||||||
|
"""
|
||||||
|
def stopProducing(self):
|
||||||
|
try:
|
||||||
|
FileBodyProducer.stopProducing(self)
|
||||||
|
except task.TaskStopped:
|
||||||
|
pass
|
||||||
|
|
Loading…
Reference in a new issue