Publish to message queue repeatedly when a client disconnect · Issue #441 · miguelgrinberg/python-socketio · GitHub
Skip to content

Publish to message queue repeatedly when a client disconnect #441

Description

@lvyaoo

I have run an app with Flask-SocketIO(4.2.1), gunicorn(20.0.4), gevent(1.4.0), gevent-websocket(0.10.1) and Redis as MQ for weeks. Yesterday when I upgraded python-socketio from 4.4.0 to 4.5.0, something went wrong. Whenever a client disconnected, python-socketio repeatedly published to Redis the same message as follows:

{'method': 'disconnect', 'sid': '6d83b4f2cca94cc9a95552ff9ca51f06', 'namespace': '/socket.io.sl'}

The amount of backlog messages in channel was growing rapidly, and then touched client-output-buffer-limit in Redis, so the client was closed by Redis, and app must wait for a retry after 60s. I have tried eventlet instead of gevent, or RabbitMQ instead of Redis, it makes no difference. Is this a bug introduced by new features in 4.5.0?

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions