Skip to content

Commit 9350775

Browse files
fixed memory leak on rejected connections for asyncio
1 parent 63b6908 commit 9350775

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

socketio/asyncio_server.py

+2
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,8 @@ async def _handle_connect(self, sid, namespace):
258258
self.manager.disconnect(sid, namespace)
259259
await self._send_packet(sid, packet.Packet(packet.ERROR,
260260
namespace=namespace))
261+
if sid in self.environ: # pragma: no cover
262+
del self.environ[sid]
261263
return False
262264
else:
263265
await self._send_packet(sid, packet.Packet(packet.CONNECT,

tests/test_asyncio_server.py

+2
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,7 @@ def test_handle_connect_rejected(self, eio):
267267
handler.assert_called_once_with('123', 'environ')
268268
self.assertEqual(s.manager.connect.call_count, 1)
269269
self.assertEqual(s.manager.disconnect.call_count, 1)
270+
self.assertEqual(s.environ, {})
270271
s.eio.send.mock.assert_called_once_with('123', '4', binary=False)
271272

272273
def test_handle_connect_namespace_rejected(self, eio):
@@ -279,6 +280,7 @@ def test_handle_connect_namespace_rejected(self, eio):
279280
_run(s._handle_eio_message('123', '0/foo'))
280281
self.assertEqual(s.manager.connect.call_count, 2)
281282
self.assertEqual(s.manager.disconnect.call_count, 1)
283+
self.assertEqual(s.environ, {})
282284
s.eio.send.mock.assert_any_call('123', '4/foo', binary=False)
283285

284286
def test_handle_disconnect(self, eio):

0 commit comments

Comments
 (0)