Skip to content

matrix: HANDLE EXCEPTIONS OMG #4

@jahschwa

Description

@jahschwa

The matrix protocol does not handle failure to connect correctly, bringing down the entire bot. Although the relevant line is wrapped in a try statement, except MatrixRequestError as e: doesn't catch the exception because it's raised directly by requests and not translated/recast by the matrix api.

2017-01-20 10:48:58 | sibylbot | CRI | UNHANDLED: ConnectionError

Traceback (most recent call last):
  File "/media/Data/git/sibyl/lib/sibylbot.py", line 1057, in run_forever
    self.__run_forever()
  File "/media/Data/git/sibyl/lib/sibylbot.py", line 968, in __run_forever
    self.__serve()
  File "/media/Data/git/sibyl/lib/sibylbot.py", line 948, in __serve
    proto.connect()
  File "protocols/sibyl_matrix.py", line 183, in connect
    token = self.client.login_with_password(user,pw)
  File "/home/laptopdude/python/lib/matrix_client/client.py", line 151, in login_with_password
    "m.login.password", user=username, password=password
  File "/home/laptopdude/python/lib/matrix_client/api.py", line 125, in login
    return self._send("POST", "/login", content)
  File "/home/laptopdude/python/lib/matrix_client/api.py", line 449, in _send
    verify=self.validate_cert
  File "/usr/lib/python2.7/dist-packages/requests/api.py", line 53, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 468, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 437, in send
    raise ConnectionError(e, request=request)
ConnectionError: HTTPSConnectionPool(host='matrix.org', port=443): Max retries exceeded with url: /_matrix/client/api/v1/login (Caused by NewConnectionError('<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f2ae9477f10>: Failed to establish a new connection: [Errno 101] Network is unreachable',))

Reproducing: enable the matrix protocol and try to run Sibyl without working internet

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions