Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 416c671

Browse files
authored
Merge pull request #4204 from matrix-org/rav/logcontext_leak_fixes
Fix some logcontext leaks
2 parents 31425d8 + 0c05da2 commit 416c671

6 files changed

Lines changed: 12 additions & 7 deletions

File tree

changelog.d/4204.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix logcontext leaks in EmailPusher and in tests

synapse/push/mailer.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
)
3737
from synapse.types import UserID
3838
from synapse.util.async_helpers import concurrently_execute
39+
from synapse.util.logcontext import make_deferred_yieldable
3940
from synapse.visibility import filter_events_for_client
4041

4142
logger = logging.getLogger(__name__)
@@ -192,7 +193,7 @@ def _fetch_room_state(room_id):
192193

193194
logger.info("Sending email push notification to %s" % email_address)
194195

195-
yield self.sendmail(
196+
yield make_deferred_yieldable(self.sendmail(
196197
self.hs.config.email_smtp_host,
197198
raw_from, raw_to, multipart_msg.as_string().encode('utf8'),
198199
reactor=self.hs.get_reactor(),
@@ -201,7 +202,7 @@ def _fetch_room_state(room_id):
201202
username=self.hs.config.email_smtp_user,
202203
password=self.hs.config.email_smtp_pass,
203204
requireTransportSecurity=self.hs.config.require_transport_security
204-
)
205+
))
205206

206207
@defer.inlineCallbacks
207208
def get_room_vars(self, room_id, user_id, notifs, notif_events, room_state_ids):

tests/push/test_http.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from twisted.internet.defer import Deferred
1919

2020
from synapse.rest.client.v1 import admin, login, room
21+
from synapse.util.logcontext import make_deferred_yieldable
2122

2223
from tests.unittest import HomeserverTestCase
2324

@@ -47,7 +48,7 @@ def make_homeserver(self, reactor, clock):
4748
def post_json_get_json(url, body):
4849
d = Deferred()
4950
self.push_attempts.append((d, url, body))
50-
return d
51+
return make_deferred_yieldable(d)
5152

5253
m.post_json_get_json = post_json_get_json
5354

tests/rest/media/v1/test_url_preview.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from twisted.internet.defer import Deferred
2121

2222
from synapse.config.repository import MediaStorageProviderConfig
23+
from synapse.util.logcontext import make_deferred_yieldable
2324
from synapse.util.module_loader import load_module
2425

2526
from tests import unittest
@@ -77,7 +78,7 @@ def write_to(r):
7778
d = Deferred()
7879
d.addCallback(write_to)
7980
self.fetches.append((d, url))
80-
return d
81+
return make_deferred_yieldable(d)
8182

8283
client = Mock()
8384
client.get_file = get_file

tests/test_federation.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,8 @@ def post_json(destination, path, data, headers=None, timeout=0):
123123
"test.serv", lying_event, sent_to_us_directly=True
124124
)
125125

126-
# Step the reactor, so the database fetches come back
127-
self.reactor.advance(1)
126+
# Step the reactor, so the database fetches come back
127+
self.reactor.advance(1)
128128

129129
# on_receive_pdu should throw an error
130130
failure = self.failureResultOf(d)

tests/test_server.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from synapse.http.server import JsonResource
2828
from synapse.http.site import SynapseSite, logger
2929
from synapse.util import Clock
30+
from synapse.util.logcontext import make_deferred_yieldable
3031

3132
from tests import unittest
3233
from tests.server import FakeTransport, make_request, render, setup_test_homeserver
@@ -95,7 +96,7 @@ def _callback(request, **kwargs):
9596
d = Deferred()
9697
d.addCallback(_throw)
9798
self.reactor.callLater(1, d.callback, True)
98-
return d
99+
return make_deferred_yieldable(d)
99100

100101
res = JsonResource(self.homeserver)
101102
res.register_paths("GET", [re.compile("^/_matrix/foo$")], _callback)

0 commit comments

Comments
 (0)