diff options
author | Paul Brown <paul90brown@gmail.com> | 2021-12-23 16:26:44 -0600 |
---|---|---|
committer | Asif Saif Uddin <auvipy@gmail.com> | 2021-12-24 09:25:47 +0600 |
commit | 47781af0508a168a8726f024165ce583c1d5de24 (patch) | |
tree | 911dd1621738a78e4fb8d1205298d7c1f0522b47 /t | |
parent | 507b3064004133d14b974d387200750f21309323 (diff) | |
download | kombu-47781af0508a168a8726f024165ce583c1d5de24.tar.gz |
prevent event loop polling on closed redis transports (and causing leak)
Diffstat (limited to 't')
-rw-r--r-- | t/unit/transport/test_redis.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/t/unit/transport/test_redis.py b/t/unit/transport/test_redis.py index 13dfc356..13f45385 100644 --- a/t/unit/transport/test_redis.py +++ b/t/unit/transport/test_redis.py @@ -854,6 +854,21 @@ class test_Channel: call(13, transport.on_readable, 13), ]) + def test_register_with_event_loop__on_disconnect__loop_cleanup(self): + """Ensure event loop polling stops on disconnect.""" + transport = self.connection.transport + self.connection._sock = None + transport.cycle = Mock(name='cycle') + transport.cycle.fds = {12: 'LISTEN', 13: 'BRPOP'} + conn = Mock(name='conn') + conn.client = Mock(name='client', transport_options={}) + loop = Mock(name='loop') + loop.on_tick = set() + redis.Transport.register_with_event_loop(transport, conn, loop) + assert len(loop.on_tick) == 1 + transport.cycle._on_connection_disconnect(self.connection) + assert loop.on_tick == set() + def test_configurable_health_check(self): transport = self.connection.transport transport.cycle = Mock(name='cycle') |