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

RecursionError: maximum recursion depth exceeded in comparison #792

Open
MathiasDrapier opened this issue Mar 6, 2023 · 0 comments
Open
Labels

Comments

@MathiasDrapier
Copy link

Hello, I have a flask + flask_socketio server using eventlet, until now I never had a problem but for about a week now my server has stopped (http request flask and flask_socketio are down) I have to do it restart manually.
I was able to collect the logs and here is what I have:

2023-03-04 03:17:51,002 - root - ERROR - disconnect handler error
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 622, in _trigger_event
    return self.handlers[event](*args)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 807, in _handle_eio_disconnect
    self._handle_disconnect(eio_sid, n)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 709, in _handle_disconnect
    self._trigger_event('disconnect', namespace, sid)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 756, in _trigger_event
    return self.handlers[namespace][event](*args)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 282, in _handler
    return self._handle_event(handler, message, namespace, sid,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 790, in _handle_event
    environ = self.server.get_environ(sid, namespace=namespace)
RecursionError: maximum recursion depth exceeded

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 622, in _trigger_event
    return self.handlers[event](*args)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 807, in _handle_eio_disconnect
    self._handle_disconnect(eio_sid, n)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 709, in _handle_disconnect
    self._trigger_event('disconnect', namespace, sid)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 756, in _trigger_event
    return self.handlers[namespace][event](*args)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 282, in _handler
    return self._handle_event(handler, message, namespace, sid,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 828, in _handle_event
    ret = handler(*args)
  File "/usr/src/app/src/socketManager.py", line 104, in handle_disconnect
    emit('message', str(hcd), to=room)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 901, in emit
    return socketio.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 462, in emit
    self.server.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 319, in emit
    self.manager.emit(event, data, namespace, room=room,
  File "/usr/local/lib/python3.9/site-packages/socketio/base_manager.py", line 172, in emit
    self.server._emit_internal(eio_sid, event, data, namespace, id)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 644, in _emit_internal
    self._send_packet(eio_sid, self.packet_class(
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 654, in _send_packet
    self.eio.send(eio_sid, encoded_packet)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 232, in send
    socket.send(packet.Packet(packet.MESSAGE, data=data))
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 85, in send
    if not self.check_ping_timeout():
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 79, in check_ping_timeout
    self.close(wait=False, abort=False)
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 132, in close
    self.server._trigger_event('disconnect', self.sid, run_async=False)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 624, in _trigger_event
    self.logger.exception(event + ' handler error')
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1481, in exception
    self.error(msg, *args, exc_info=exc_info, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1475, in error
    self._log(ERROR, msg, args, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1577, in _log
    fn, lno, func, sinfo = self.findCaller(stack_info, stacklevel)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1519, in findCaller
    f = currentframe()
  File "/usr/local/lib/python3.9/logging/__init__.py", line 160, in <lambda>
    currentframe = lambda: sys._getframe(3)
RecursionError: maximum recursion depth exceeded while calling a Python object

During handling of the above exception, another exception occurred:

RecursionError: maximum recursion depth exceeded while calling a Python object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 622, in _trigger_event
    return self.handlers[event](*args)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 807, in _handle_eio_disconnect
    self._handle_disconnect(eio_sid, n)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 709, in _handle_disconnect
    self._trigger_event('disconnect', namespace, sid)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 756, in _trigger_event
    return self.handlers[namespace][event](*args)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 282, in _handler
    return self._handle_event(handler, message, namespace, sid,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 828, in _handle_event
    ret = handler(*args)
  File "/usr/src/app/src/socketManager.py", line 104, in handle_disconnect
    emit('message', str(hcd), to=room)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 901, in emit
    return socketio.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 462, in emit
    self.server.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 319, in emit
    self.manager.emit(event, data, namespace, room=room,
  File "/usr/local/lib/python3.9/site-packages/socketio/base_manager.py", line 172, in emit
    self.server._emit_internal(eio_sid, event, data, namespace, id)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 644, in _emit_internal
    self._send_packet(eio_sid, self.packet_class(
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 654, in _send_packet
    self.eio.send(eio_sid, encoded_packet)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 232, in send
    socket.send(packet.Packet(packet.MESSAGE, data=data))
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 85, in send
    if not self.check_ping_timeout():
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 79, in check_ping_timeout
    self.close(wait=False, abort=False)
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 132, in close
    self.server._trigger_event('disconnect', self.sid, run_async=False)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 624, in _trigger_event
    self.logger.exception(event + ' handler error')
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1481, in exception
    self.error(msg, *args, exc_info=exc_info, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1475, in error
    self._log(ERROR, msg, args, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1589, in _log
    self.handle(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1599, in handle
    self.callHandlers(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1661, in callHandlers
    hdlr.handle(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 952, in handle
    self.emit(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1187, in emit
    StreamHandler.emit(self, record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1083, in emit
    msg = self.format(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 927, in format
    return fmt.format(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 671, in format
    record.exc_text = self.formatException(record.exc_info)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 621, in formatException
    traceback.print_exception(ei[0], ei[1], tb, None, sio)
  File "/usr/local/lib/python3.9/traceback.py", line 103, in print_exception
    for line in TracebackException(
  File "/usr/local/lib/python3.9/traceback.py", line 517, in __init__
    self.stack = StackSummary.extract(
  File "/usr/local/lib/python3.9/traceback.py", line 366, in extract
    f.line
  File "/usr/local/lib/python3.9/traceback.py", line 288, in line
    self._line = linecache.getline(self.filename, self.lineno).strip()
  File "/usr/local/lib/python3.9/linecache.py", line 30, in getline
    lines = getlines(filename, module_globals)
  File "/usr/local/lib/python3.9/linecache.py", line 46, in getlines
    return updatecache(filename, module_globals)
  File "/usr/local/lib/python3.9/linecache.py", line 136, in updatecache
    with tokenize.open(fullname) as fp:
  File "/usr/local/lib/python3.9/tokenize.py", line 392, in open
    buffer = _builtin_open(filename, 'rb')
RecursionError: maximum recursion depth exceeded while calling a Python object
2023-03-04 03:17:51,007 - root - ERROR - disconnect handler error
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 633, in _get_socket
    s = self.sockets[sid]
KeyError: '4wx0Ns-ZY25pACs8AUN1'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 227, in send
    socket = self._get_socket(sid)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 635, in _get_socket
    raise KeyError('Session not found')
KeyError: 'Session not found'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 622, in _trigger_event
    return self.handlers[event](*args)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 807, in _handle_eio_disconnect
    self._handle_disconnect(eio_sid, n)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 709, in _handle_disconnect
    self._trigger_event('disconnect', namespace, sid)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 756, in _trigger_event
    return self.handlers[namespace][event](*args)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 282, in _handler
    return self._handle_event(handler, message, namespace, sid,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 828, in _handle_event
    ret = handler(*args)
  File "/usr/src/app/src/socketManager.py", line 104, in handle_disconnect
    emit('message', str(hcd), to=room)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 901, in emit
    return socketio.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 462, in emit
    self.server.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 319, in emit
    self.manager.emit(event, data, namespace, room=room,
  File "/usr/local/lib/python3.9/site-packages/socketio/base_manager.py", line 172, in emit
    self.server._emit_internal(eio_sid, event, data, namespace, id)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 644, in _emit_internal
    self._send_packet(eio_sid, self.packet_class(
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 654, in _send_packet
    self.eio.send(eio_sid, encoded_packet)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 230, in send
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1458, in warning
    self._log(WARNING, msg, args, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1587, in _log
    record = self.makeRecord(self.name, level, fn, lno, msg, args,
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1556, in makeRecord
    rv = _logRecordFactory(name, level, fn, lno, msg, args, exc_info, func,
  File "/usr/local/lib/python3.9/logging/__init__.py", line 308, in __init__
    if (args and len(args) == 1 and isinstance(args[0], collections.abc.Mapping)
  File "/usr/local/lib/python3.9/abc.py", line 119, in __instancecheck__
    return _abc_instancecheck(cls, instance)
RecursionError: maximum recursion depth exceeded in comparison

During handling of the above exception, another exception occurred:

RecursionError: maximum recursion depth exceeded while calling a Python object

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 622, in _trigger_event
    return self.handlers[event](*args)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 807, in _handle_eio_disconnect
    self._handle_disconnect(eio_sid, n)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 709, in _handle_disconnect
    self._trigger_event('disconnect', namespace, sid)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 756, in _trigger_event
    return self.handlers[namespace][event](*args)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 282, in _handler
    return self._handle_event(handler, message, namespace, sid,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 828, in _handle_event
    ret = handler(*args)
  File "/usr/src/app/src/socketManager.py", line 104, in handle_disconnect
    emit('message', str(hcd), to=room)
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 901, in emit
    return socketio.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/flask_socketio/__init__.py", line 462, in emit
    self.server.emit(event, *args, namespace=namespace, to=to,
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 319, in emit
    self.manager.emit(event, data, namespace, room=room,
  File "/usr/local/lib/python3.9/site-packages/socketio/base_manager.py", line 172, in emit
    self.server._emit_internal(eio_sid, event, data, namespace, id)
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 644, in _emit_internal
    self._send_packet(eio_sid, self.packet_class(
  File "/usr/local/lib/python3.9/site-packages/socketio/server.py", line 654, in _send_packet
    self.eio.send(eio_sid, encoded_packet)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 232, in send
    socket.send(packet.Packet(packet.MESSAGE, data=data))
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 85, in send
    if not self.check_ping_timeout():
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 79, in check_ping_timeout
    self.close(wait=False, abort=False)
  File "/usr/local/lib/python3.9/site-packages/engineio/socket.py", line 132, in close
    self.server._trigger_event('disconnect', self.sid, run_async=False)
  File "/usr/local/lib/python3.9/site-packages/engineio/server.py", line 624, in _trigger_event
    self.logger.exception(event + ' handler error')
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1481, in exception
    self.error(msg, *args, exc_info=exc_info, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1475, in error
    self._log(ERROR, msg, args, **kwargs)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1589, in _log
    self.handle(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1599, in handle
    self.callHandlers(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1661, in callHandlers
    hdlr.handle(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 952, in handle
    self.emit(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1187, in emit
    StreamHandler.emit(self, record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 1083, in emit
    msg = self.format(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 927, in format
    return fmt.format(record)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 671, in format
    record.exc_text = self.formatException(record.exc_info)
  File "/usr/local/lib/python3.9/logging/__init__.py", line 621, in formatException
    traceback.print_exception(ei[0], ei[1], tb, None, sio)
  File "/usr/local/lib/python3.9/traceback.py", line 103, in print_exception
    for line in TracebackException(
  File "/usr/local/lib/python3.9/traceback.py", line 517, in __init__
    self.stack = StackSummary.extract(
  File "/usr/local/lib/python3.9/traceback.py", line 366, in extract
    f.line
  File "/usr/local/lib/python3.9/traceback.py", line 288, in line
    self._line = linecache.getline(self.filename, self.lineno).strip()
  File "/usr/local/lib/python3.9/linecache.py", line 30, in getline
    lines = getlines(filename, module_globals)
  File "/usr/local/lib/python3.9/linecache.py", line 46, in getlines
    return updatecache(filename, module_globals)
  File "/usr/local/lib/python3.9/linecache.py", line 136, in updatecache
    with tokenize.open(fullname) as fp:
  File "/usr/local/lib/python3.9/tokenize.py", line 392, in open
    buffer = _builtin_open(filename, 'rb')
RecursionError: maximum recursion depth exceeded while calling a Python object

I get these logs in loop, I saw that many similar errors appeared using eventlet, is there a solution to this problem?
Thanks

@itamarst itamarst added the bug label Dec 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants