Cause socket timeout during ssl negotiation.
Connection to fail but a reconnection attempt be performed without triggering the Slack rate limit.
Following numerous handshake timeout's, the RTMClientv2 reconnected to frequently within a short time frame. This caused the Slack server to respond with a ratelimited error.
2021-02-14 18:19:49,579 ERROR slack_sdk.rtm.v2 Failed to establish a connection (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81, error: _ssl.c:1108: The handshake operation timed out)
Traceback (most recent call last):
File "/opt/errbot/lib/python3.8/site-packages/slack_sdk/socket_mode/builtin/connection.py", line 109, in connect
sock.connect((hostname, port))
File "/usr/lib/python3.8/ssl.py", line 1342, in connect
self._real_connect(addr, False)
File "/usr/lib/python3.8/ssl.py", line 1333, in _real_connect
self.do_handshake()
File "/usr/lib/python3.8/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:1108: The handshake operation timed out
2021-02-14 18:19:49,579 INFO slack_sdk.rtm.v2 The connection has been closed (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:19:49,579 INFO slack_sdk.rtm.v2 The connection has been closed (session id: b88f63ee-d644-45a8-bf18-be36c8673728)
2021-02-14 18:19:49,579 INFO slack_sdk.rtm.v2 A new session has been established (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:19:49,579 INFO slack_sdk.rtm.v2 Connected to a new endpoint...
2021-02-14 18:19:59,590 DEBUG slack_sdk.rtm.v2 This connection is already closed. (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:19:59,590 INFO slack_sdk.rtm.v2 The session seems to be already closed. Going to reconnect... (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:19:59,590 INFO slack_sdk.rtm.v2 Connecting to a new endpoint...
2021-02-14 18:20:00,075 ERROR slack_sdk.rtm.v2 Failed to retrieve WSS URL: The request to the Slack API failed.
The server responded with: {'ok': False, 'error': 'ratelimited'}
2021-02-14 18:20:00,075 ERROR slack_sdk.rtm.v2 Failed to check the current session or reconnect to the server (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81, error: SlackApiError, message: The request to the Slack API failed.
The server responded with: {'ok': False, 'error': 'ratelimited'})
2021-02-14 18:20:10,092 DEBUG slack_sdk.rtm.v2 This connection is already closed. (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:20:10,117 INFO slack_sdk.rtm.v2 The session seems to be already closed. Going to reconnect... (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:20:10,121 INFO slack_sdk.rtm.v2 Connecting to a new endpoint...
2021-02-14 18:20:10,339 ERROR slack_sdk.rtm.v2 Failed to retrieve WSS URL: The request to the Slack API failed.
The server responded with: {'ok': False, 'error': 'ratelimited'}
2021-02-14 18:20:10,339 ERROR slack_sdk.rtm.v2 Failed to check the current session or reconnect to the server (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81, error: SlackApiError, message: The request to the Slack API failed.
The server responded with: {'ok': False, 'error': 'ratelimited'})
2021-02-14 18:20:20,350 DEBUG slack_sdk.rtm.v2 This connection is already closed. (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:20:20,350 INFO slack_sdk.rtm.v2 The session seems to be already closed. Going to reconnect... (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:20:20,350 INFO slack_sdk.rtm.v2 Connecting to a new endpoint...
2021-02-14 18:20:20,556 ERROR slack_sdk.rtm.v2 Failed to retrieve WSS URL: The request to the Slack API failed.
The server responded with: {'ok': False, 'error': 'ratelimited'}
2021-02-14 18:20:20,557 ERROR slack_sdk.rtm.v2 Failed to check the current session or reconnect to the server (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81, error: SlackApiError, message: The request to the Slack API failed.
The server responded with: {'ok': False, 'error': 'ratelimited'})
2021-02-14 18:20:30,567 DEBUG slack_sdk.rtm.v2 This connection is already closed. (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:20:30,567 INFO slack_sdk.rtm.v2 The session seems to be already closed. Going to reconnect... (session id: 18e8f520-5e64-443c-98ed-089ab1ef6f81)
2021-02-14 18:20:30,567 INFO slack_sdk.rtm.v2 Connecting to a new endpoint...
Reproducible in:
The Slack SDK version
slack-sdk==3.3.1
Python runtime version
Python 3.8.7
OS info
Linux 5.4.97-gentoo #1 SMP
Steps to reproduce:
Cause socket timeout during ssl negotiation.
Expected result:
Connection to fail but a reconnection attempt be performed without triggering the Slack rate limit.
Actual result:
Following numerous handshake timeout's, the RTMClientv2 reconnected to frequently within a short time frame. This caused the Slack server to respond with a
ratelimitederror.