Skip to content

[Bug]: Event listener won't stay connected after ~2mn of cloud vars inativity #722

Description

@JloAu

scratchattach version

2.2.1

What happened?

this only happens with a custom cloud server using a cloudflare tunnel, it works properly with TwCloud or CustomCloud with 127.0.0.1:8080

  • I start my python script (init_cloud_server + cloud event listener)
  • I load and run the turbowarp project -> the server responds to the requests
  • I stay inactive on the turbowarp web page for ~2 minutes, then the issue happens and the server doesn't respond anymore to my requests
  • I restart the python script, then everything works again (I did not reload the turbowarp tab)

I was wondering if this was fixable or not? Because the turbowarp tab seems to work correctly even after a long inactivity...

Your code.

server = sa.init_cloud_server("0.0.0.0", server_port, length_limit=None, allow_non_numeric=True, whitelisted_projects=None, allow_nonscratch_names=True, blocked_ips=[], sync_players=True, log_var_sets=False)

server.start(thread=True)

cloud = sa.CustomCloud(project_id=project_id, cloud_host="wss://[random name].trycloudflare.com", username = "EvtListener", length_limit = None, allow_non_numeric = True, _session = None, header = None, cookie = None, origin = None, print_connect_messages = False)

cloud_events=cloud.events()
cloud_events.start(thread=True, ignore_exceptions=True)

Traceback

127.0.0.1:48574 handshaked, project: 1332266638 user: EvtListener
127.0.0.1:48574 disconnected
127.0.0.1:48580 connected
Traceback (most recent call last):
  File "/home/jloau/.venv/lib/python3.12/site-packages/scratchattach/cloud/_base.py", line 180, in read
    self.receive_new(not recv_once, timeout = timeout_end - time.time() if has_timeout else None)
  File "/home/jloau/.venv/lib/python3.12/site-packages/scratchattach/cloud/_base.py", line 156, in receive_new
    received = self.source_cloud.websocket.recv().splitlines()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_core.py", line 395, in recv
    opcode, data = self.recv_data()
                   ^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_core.py", line 423, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_core.py", line 444, in recv_data_frame
    frame = self.recv_frame()
            ^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_core.py", line 485, in recv_frame
    return self.frame_buffer.recv_frame()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_abnf.py", line 375, in recv_frame
    self.recv_header()
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_abnf.py", line 329, in recv_header
    header = self.recv_strict(2)
             ^^^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_abnf.py", line 418, in recv_strict
    bytes_ = self.recv(min(16384, shortage))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_core.py", line 581, in _recv
    return recv(self.sock, bufsize)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/jloau/.venv/lib/python3.12/site-packages/websocket/_socket.py", line 125, in recv
    bytes_ = sock.recv(bufsize)
             ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/ssl.py", line 1233, in recv
    return self.read(buflen)
           ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/ssl.py", line 1106, in read
    return self._sslobj.read(len)
           ^^^^^^^^^^^^^^^^^^^^^^
ssl.SSLWantReadError: The operation did not complete (read) (_ssl.c:2559)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs triageNeed to apply low priority/high priority etcbugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions