Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maximum recursion depth internal error (Flask-SocketIO/Eventlet/Docker/Python 3.11/Ubuntu 23.04) #2293

Closed
vpmedia opened this issue Aug 4, 2023 · 1 comment

Comments

@vpmedia
Copy link

vpmedia commented Aug 4, 2023

How do you use Sentry?

Sentry Saas (sentry.io)

Version

1.29.2

Steps to Reproduce

My application is using the Flask-SocketIO framework (flask-socketio.readthedocs.io) and Eventlet (with monkey patching).

Running in a Docker container behind an Nginx proxy (SSL terminating).

Python version 3.11
OS is Ubuntu 23.04

Relevant pkg versions:

eventlet==0.33.3
    # via -r requirements.in
flask==2.3.2
    # via
    #   -r requirements.in
    #   flask-socketio
    #   sentry-sdk
flask-socketio==5.3.5
    # via -r requirements.in
sentry-sdk[flask]==1.29.2
    # via -r requirements.in
urllib3==2.0.4
    # via
    #   -r requirements.in
    #   requests
    #   sentry-sdk

I think the last time Sentry was working is about 22 days ago because that's the last release version which I'm seeing in the dashboard.
Please see the stacktrace below.

Expected Result

No internal error is raised and app errors are reported.

Actual Result

Please excuse me for the scrambled stack trace, I'm using python-json-logger.

[sentry] ERROR: Internal error in sentry_sdk
Traceback (most recent call last):
File "/var/www/app/venv/lib/python3.11/site-packages/sentry_sdk/transport.py", line 508, in send_envelope_wrapper
  self._send_envelope(envelope)
File "/var/www/app/venv/lib/python3.11/site-packages/sentry_sdk/transport.py", line 404, in _send_envelope
  self._send_request(
File "/var/www/app/venv/lib/python3.11/site-packages/sentry_sdk/transport.py", line 235, in _send_request
  response = self._pool.request(
             ^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/_request_methods.py", line 118, in request
  return self.request_encode_body(
         ^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/_request_methods.py", line 217, in request_encode_body
  return self.urlopen(method, url, **extra_kw)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/poolmanager.py", line 443, in urlopen
  response = conn.urlopen(method, u.request_uri, **kw)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 790, in urlopen
  response = self._make_request(
             ^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 467, in _make_request
  self._validate_conn(conn)
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/connectionpool.py", line 1092, in _validate_conn
  conn.connect()
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/connection.py", line 642, in connect
  sock_and_verified = _ssl_wrap_socket_and_match_hostname(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/connection.py", line 735, in _ssl_wrap_socket_and_match_hostname
  context = create_urllib3_context(
            ^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/app/venv/lib/python3.11/site-packages/urllib3/util/ssl_.py", line 292, in create_urllib3_context
  context.minimum_version = TLSVersion.TLSv1_2
  ^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/ssl.py", line 608, in minimum_version
  super(SSLContext, SSLContext).minimum_version.__set__(self, value)
File "/usr/lib/python3.11/ssl.py", line 608, in minimum_version
  super(SSLContext, SSLContext).minimum_version.__set__(self, value)
File "/usr/lib/python3.11/ssl.py", line 608, in minimum_version
  super(SSLContext, SSLContext).minimum_version.__set__(self, value)
[Previous line repeated 479 more times]
File "/usr/lib/python3.11/ssl.py", line 606, in minimum_version
  if value == TLSVersion.SSLv3:
              ^^^^^^^^^^^^^^^^
RecursionError: maximum recursion depth exceeded
{"time": "2023-08-04T14:15:24+0000", "level": "ERROR", "name": "sentry_sdk.errors", "funcName": "_capture_internal_exception", "message": "Internal error in sentry_sdk", "exc_info": "Traceback (most recent call last):\n  File \"/var/www/app/venv/lib/python3.11/site-packages/sentry_sdk/transport.py\", line 508, in send_envelope_wrapper\n    self._send_envelope(envelope)\n  File \"/var/www/app/venv/lib/python3.11/site-packages/sentry_sdk/transport.py\", line 404, in _send_envelope\n    self._send_request(\n  File \"/var/www/app/venv/lib/python3.11/site-packages/sentry_sdk/transport.py\", line 235, in _send_request\n    response = self._pool.request(\n               ^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/_request_methods.py\", line 118, in request\n    return self.request_encode_body(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/_request_methods.py\", line 217, in request_encode_body\n    return self.urlopen(method, url, **extra_kw)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/poolmanager.py\", line 443, in urlopen\n    response = conn.urlopen(method, u.request_uri, **kw)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 790, in urlopen\n    response = self._make_request(\n               ^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 467, in _make_request\n    self._validate_conn(conn)\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/connectionpool.py\", line 1092, in _validate_conn\n    conn.connect()\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/connection.py\", line 642, in connect\n    sock_and_verified = _ssl_wrap_socket_and_match_hostname(\n                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/connection.py\", line 735, in _ssl_wrap_socket_and_match_hostname\n    context = create_urllib3_context(\n              ^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/var/www/app/venv/lib/python3.11/site-packages/urllib3/util/ssl_.py\", line 292, in create_urllib3_context\n    context.minimum_version = TLSVersion.TLSv1_2\n    ^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.11/ssl.py\", line 608, in minimum_version\n    super(SSLContext, SSLContext).minimum_version.__set__(self, value)\n  File \"/usr/lib/python3.11/ssl.py\", line 608, in minimum_version\n    super(SSLContext, SSLContext).minimum_version.__set__(self, value)\n  File \"/usr/lib/python3.11/ssl.py\", line 608, in minimum_version\n    super(SSLContext, SSLContext).minimum_version.__set__(self, value)\n  [Previous line repeated 479 more times]\n  File \"/usr/lib/python3.11/ssl.py\", line 606, in minimum_version\n    if value == TLSVersion.SSLv3:\n                ^^^^^^^^^^^^^^^^\nRecursionError: maximum recursion depth exceeded"}

@vpmedia
Copy link
Author

vpmedia commented Aug 6, 2023

Disabling eventlet monkey patching resolved this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

No branches or pull requests

2 participants