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

[Ray Distributed Debugger] Unable to use debugger on Ray Cluster on k8s: deubgpy.listen(...) crashes silently briefly after being called #49014

Open
koenlek opened this issue Dec 2, 2024 · 6 comments
Assignees
Labels
bug Something that is supposed to be working; but isn't debugger triage Needs triage (eg: priority, bug/not-bug, and owning component)

Comments

@koenlek
Copy link

koenlek commented Dec 2, 2024

What happened + What you expected to happen

I've been trying to use Ray Distributed Debugger on a Ray Cluster on k8s, but so far without luck. After doing some digging I found out that the debugpy.listen(...) call in the task silently fails (note: debugpy.listen is injected as part of the task hitting its first breakpoint(), as implemented here).

The main consequence is that I'm unable to connect to the task that's waiting for a client to connect (ECONNREFUSED). When I ssh to the client and enable extra debugpy logs (see repro script), I can see that nothing is bound to the port that it's supposed to be listening on and that the debugpy logs contain a BrokenPipeError. From my investigation, it seems that BrokenPipeError is the easiest way to determine if things are healthy or broken.

Related tickets:

Versions / Dependencies

Ray 2.39.0, debugpy 1.8.8, Ubuntu 20.04.6

Reproduction script

This demo doesn't need a breakpoint() or RAY_DEBUG=1 or so. It just sets up debugpy listening and shows that it crashes silently with BrokenPipeError, leaving the listening port unbound. The same issue also occurs when using the actual ray distributed debugger (random port, bound to external ip), this example is just more minimal/isolated.

How to use:
Call start_and_check_debugpy() in a single task ray job (single, as I set a fixed listen port, to avoid multiple tasks from trying to bind the same port).
I can see that nothing is bound to the port (the assert will fail) and that BrokenPipeError is in the opened /tmp/debugpy.pydevd.*.log file.

When I run the same code locally or on the K8S pod outside of ray, things work fine.

import os
import socket
import glob
import debugpy
import time


DEBUGPY_LOGFILE_PATTERN = "/tmp/debugpy.*.log"


def is_port_in_use(port: int) -> bool:
    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
        return s.connect_ex(("localhost", port)) == 0


def start_and_check_debugpy() -> None:
    clean_debugpy_log_files()  # clean any leftovers from previous test runs
    os.environ["DEBUGPY_LOG_DIR"] = "/tmp"
    PORT = 5678  # can be a random port too.
    print(f"before assert {PORT} is free")
    assert is_port_in_use(PORT) == False, f"Port {PORT} is in use, but should not."
    print(f"after assert {PORT} is free")
    print(f"before listen {PORT}")
    debugpy.listen(PORT)
    print(f"after listen {PORT}")
    # Seems like it takes some time for the listener to crash in our troubled remote case
    time.sleep(10)
    print_debugpy_log_files()
    print(f"before assert {PORT} is in use")
    assert is_port_in_use(PORT) == True, f"Port {PORT} is not in use, but should be."
    print(f"after assert {PORT} is in use")


def clean_debugpy_log_files() -> None:
    files = glob.glob(DEBUGPY_LOGFILE_PATTERN)
    for file_path in files:
        os.remove(file_path)
        print(f"Deleted: {file_path}")


def print_debugpy_log_files() -> None:
    files = glob.glob(DEBUGPY_LOGFILE_PATTERN)
    print(f"Printing contents of {DEBUGPY_LOGFILE_PATTERN} files")
    for file_path in files:
        with open(file_path) as file:
            contents = file.read()
            print(f"Filename: {file_path}")
            print("Contents:")
            print(contents)
            print("-" * 40)

Issue Severity

High: It blocks me from completing my task.

@koenlek koenlek added bug Something that is supposed to be working; but isn't triage Needs triage (eg: priority, bug/not-bug, and owning component) labels Dec 2, 2024
@jcotant1
Copy link
Member

jcotant1 commented Dec 2, 2024

Cc: @brycehuang30

@pcmoritz
Copy link
Contributor

pcmoritz commented Dec 5, 2024

Thanks for submitting this report -- do you have some more information about your environment? I tried to repro it with kind (basically using exactly the Kustomize steps from https://github.com/ray-project/ray/pull/49085/files and then running kubectl exec -it $HEAD_POD -- bash and running your script in the shell) and it didn't exhibit the behavior you are describing. What is your kubernetes/networking setup?

@koenlek
Copy link
Author

koenlek commented Dec 5, 2024

Thanks for trying to reproduce! When I run it directly on a k8s pod it works fine. When I run it in a ray task (on k8s), it breaks. Have you tried running it in a ray task?

@pcmoritz
Copy link
Contributor

pcmoritz commented Dec 5, 2024

Thanks, I also have trouble reproducing it when running in a ray task:

(base) ray@raycluster-sample-head-nq2z8:~$ cat test.py 
import ray

@ray.remote
def f():

    import os
    import socket
    import glob
    import debugpy
    import time


    DEBUGPY_LOGFILE_PATTERN = "/tmp/debugpy.*.log"


    def is_port_in_use(port: int) -> bool:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            return s.connect_ex(("localhost", port)) == 0


    def start_and_check_debugpy() -> None:
        clean_debugpy_log_files()  # clean any leftovers from previous test runs
        os.environ["DEBUGPY_LOG_DIR"] = "/tmp"
        PORT = 5678  # can be a random port too.
        print(f"before assert {PORT} is free")
        assert is_port_in_use(PORT) == False, f"Port {PORT} is in use, but should not."
        print(f"after assert {PORT} is free")
        print(f"before listen {PORT}")
        debugpy.listen(PORT)
        print(f"after listen {PORT}")
        # Seems like it takes some time for the listener to crash in our troubled remote case
        time.sleep(10)
        print_debugpy_log_files()
        print(f"before assert {PORT} is in use")
        assert is_port_in_use(PORT) == True, f"Port {PORT} is not in use, but should be."
        print(f"after assert {PORT} is in use")


    def clean_debugpy_log_files() -> None:
        files = glob.glob(DEBUGPY_LOGFILE_PATTERN)
        for file_path in files:
            os.remove(file_path)
            print(f"Deleted: {file_path}")


    def print_debugpy_log_files() -> None:
        files = glob.glob(DEBUGPY_LOGFILE_PATTERN)
        print(f"Printing contents of {DEBUGPY_LOGFILE_PATTERN} files")
        for file_path in files:
            with open(file_path) as file:
                contents = file.read()
                print(f"Filename: {file_path}")
                print("Contents:")
                print(contents)
                print("-" * 40)

    start_and_check_debugpy()

ray.get(f.remote())

and then python test.py produces

(base) ray@raycluster-sample-head-nq2z8:~$ python test.py 
2024-12-04 23:00:39,458	INFO worker.py:1494 -- Using address 127.0.0.1:6379 set in the environment variable RAY_ADDRESS
2024-12-04 23:00:39,459	INFO worker.py:1634 -- Connecting to existing Ray cluster at address: 10.244.0.12:6379...
2024-12-04 23:00:39,464	INFO worker.py:1810 -- Connected to Ray cluster. View the dashboard at 10.244.0.12:8265 
(f pid=23032) Deleted: /tmp/debugpy.adapter-22872.log
(f pid=23032) Deleted: /tmp/debugpy.pydevd.22834.log
(f pid=23032) Deleted: /tmp/debugpy.server-22834.log
(f pid=23032) before assert 5678 is free
(f pid=23032) after assert 5678 is free
(f pid=23032) before listen 5678
(f pid=23032) after listen 5678
(f pid=23032) Printing contents of /tmp/debugpy.*.log files
(f pid=23032) Filename: /tmp/debugpy.adapter-23070.log
(f pid=23032) Contents:
(f pid=23032) I+00000.011: Linux-5.15.0-72-generic-x86_64-with-glibc2.35 x86_64
(f pid=23032)              CPython 3.9.20 (64-bit)
(f pid=23032)              debugpy 1.8.9
(f pid=23032) 
(f pid=23032) I+00000.172: debugpy.adapter startup environment:
(f pid=23032)              
(f pid=23032)              System paths:
(f pid=23032)                  sys.executable: /home/ray/anaconda3/bin/python(/home/ray/anaconda3/bin/python3.9)
(f pid=23032)                  sys.prefix: /home/ray/anaconda3
(f pid=23032)                  sys.base_prefix: /home/ray/anaconda3
(f pid=23032)                  sys.real_prefix: <missing>
(f pid=23032)                  site.getsitepackages(): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  site.getusersitepackages(): /home/ray/.local/lib/python3.9/site-packages
(f pid=23032)                  sys.path (site-packages): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  sysconfig.get_path('stdlib'): /home/ray/anaconda3/lib/python3.9
(f pid=23032)                  sysconfig.get_path('platstdlib'): /home/ray/anaconda3/lib/python3.9
(f pid=23032)                  sysconfig.get_path('purelib'): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  sysconfig.get_path('platlib'): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  sysconfig.get_path('include'): /home/ray/anaconda3/include/python3.9
(f pid=23032)                  sysconfig.get_path('scripts'): /home/ray/anaconda3/bin
(f pid=23032)                  sysconfig.get_path('data'): /home/ray/anaconda3
(f pid=23032)                  os.__file__: /home/ray/anaconda3/lib/python3.9/os.py
(f pid=23032)                  threading.__file__: /home/ray/anaconda3/lib/python3.9/threading.py
(f pid=23032)                  debugpy.__file__: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/adapter/../../debugpy/__init__.py(/home/ray/anaconda3/lib/python3.9/site-packages/debugpy/__init__.py)
(f pid=23032)              
(f pid=23032)              Installed packages:
(f pid=23032)                  conda-libmamba-solver==24.1.0
(f pid=23032)                  PyJWT==2.9.0
(f pid=23032)                  conda-package-handling==2.3.0
(f pid=23032)                  wheel==0.44.0
(f pid=23032)                  knack==0.10.1
(f pid=23032)                  setuptools==71.1.0
(f pid=23032)                  google-api-python-client==1.7.8
(f pid=23032)                  pkginfo==1.11.2
(f pid=23032)                  oauthlib==3.2.2
(f pid=23032)                  httplib2==0.22.0
(f pid=23032)                  msrestazure==0.6.4
(f pid=23032)                  pyparsing==3.2.0
(f pid=23032)                  isodate==0.7.2
(f pid=23032)                  archspec==0.2.3
(f pid=23032)                  Brotli==1.0.9
(f pid=23032)                  Cython==0.29.37
(f pid=23032)                  bcrypt==4.2.0
(f pid=23032)                  psutil==5.9.8
(f pid=23032)                  portalocker==2.10.1
(f pid=23032)                  azure-mgmt-compute==23.1.0
(f pid=23032)                  distro==1.9.0
(f pid=23032)                  jsonpatch==1.33
(f pid=23032)                  boltons==23.0.0
(f pid=23032)                  jsonpointer==2.1
(f pid=23032)                  google-auth-httplib2==0.2.0
(f pid=23032)                  ruamel.yaml==0.18.6
(f pid=23032)                  azure-cli-telemetry==1.0.8
(f pid=23032)                  flatbuffers==24.3.25
(f pid=23032)                  cryptography==38.0.1
(f pid=23032)                  azure-mgmt-resource==20.0.0
(f pid=23032)                  anaconda-anon-usage==0.4.4
(f pid=23032)                  conda==24.9.2
(f pid=23032)                  tqdm==4.66.5
(f pid=23032)                  adal==1.2.7
(f pid=23032)                  uritemplate==3.0.1
(f pid=23032)                  botocore==1.29.165
(f pid=23032)                  jmespath==1.0.1
(f pid=23032)                  pip==24.2
(f pid=23032)                  applicationinsights==0.11.10
(f pid=23032)                  azure-mgmt-core==1.5.0
(f pid=23032)                  zstandard==0.23.0
(f pid=23032)                  requests-oauthlib==2.0.0
(f pid=23032)                  azure-identity==1.10.0
(f pid=23032)                  humanfriendly==10.0
(f pid=23032)                  msal==1.18.0b1
(f pid=23032)                  ruamel.yaml.clib==0.2.8
(f pid=23032)                  azure-mgmt-network==19.0.0
(f pid=23032)                  google-oauth==1.0.1
(f pid=23032)                  Pygments==2.18.0
(f pid=23032)                  pluggy==1.0.0
(f pid=23032)                  libmambapy==1.5.8
(f pid=23032)                  idna==3.7
(f pid=23032)                  paramiko==2.12.0
(f pid=23032)                  menuinst==2.1.2
(f pid=23032)                  s3transfer==0.6.2
(f pid=23032)                  argcomplete==1.12.3
(f pid=23032)                  msal-extensions==1.0.0
(f pid=23032)                  conda-content-trust==0.2.0
(f pid=23032)                  azure-core==1.32.0
(f pid=23032)                  msrest==0.7.1
(f pid=23032)                  PySocks==1.7.1
(f pid=23032)                  tabulate==0.9.0
(f pid=23032)                  boto3==1.26.76
(f pid=23032)                  PyNaCl==1.5.0
(f pid=23032)                  azure-common==1.1.28
(f pid=23032)                  conda_package_streaming==0.10.0
(f pid=23032)                  redis==3.5.3
(f pid=23032)                  pycparser==2.21
(f pid=23032)                  frozendict==2.4.2
(f pid=23032)                  pycosat==0.6.6
(f pid=23032)                  azure-cli-core==2.40.0
(f pid=23032)                  decorator==5.1.1
(f pid=23032)                  parso==0.8.4
(f pid=23032)                  traitlets==5.14.3
(f pid=23032)                  executing==2.1.0
(f pid=23032)                  prompt_toolkit==3.0.48
(f pid=23032)                  debugpy==1.8.9
(f pid=23032)                  pure_eval==0.2.3
(f pid=23032)                  stack-data==0.6.3
(f pid=23032)                  matplotlib-inline==0.1.7
(f pid=23032)                  jedi==0.19.2
(f pid=23032)                  wcwidth==0.2.13
(f pid=23032)                  pexpect==4.9.0
(f pid=23032)                  asttokens==3.0.0
(f pid=23032)                  ipython==8.18.1
(f pid=23032)                  ptyprocess==0.7.0
(f pid=23032)                  opentelemetry-exporter-otlp==1.1.0
(f pid=23032)                  PyYAML==6.0.1
(f pid=23032)                  scikit-image==0.24.0
(f pid=23032)                  virtualenv==20.25.3
(f pid=23032)                  multidict==6.0.5
(f pid=23032)                  httptools==0.6.4
(f pid=23032)                  pydantic_core==2.14.1
(f pid=23032)                  charset-normalizer==3.3.2
(f pid=23032)                  pillow==10.3.0
(f pid=23032)                  ray==2.39.0
(f pid=23032)                  importlib-metadata==6.11.0
(f pid=23032)                  platformdirs==3.11.0
(f pid=23032)                  click==8.1.7
(f pid=23032)                  pyasn1==0.5.1
(f pid=23032)                  annotated-types==0.6.0
(f pid=23032)                  python-dateutil==2.8.2
(f pid=23032)                  jsonschema==4.17.3
(f pid=23032)                  opentelemetry-sdk==1.1.0
(f pid=23032)                  urllib3==1.26.19
(f pid=23032)                  frozenlist==1.4.1
(f pid=23032)                  six==1.16.0
(f pid=23032)                  packaging==23.0
(f pid=23032)                  yarl==1.9.4
(f pid=23032)                  pyarrow==14.0.2
(f pid=23032)                  grpcio==1.66.2
(f pid=23032)                  Farama-Notifications==0.0.4
(f pid=23032)                  mdurl==0.1.2
(f pid=23032)                  googleapis-common-protos==1.61.0
(f pid=23032)                  tensorboardX==2.6.2.2
(f pid=23032)                  networkx==3.2.1
(f pid=23032)                  typer==0.12.3
(f pid=23032)                  msgpack==1.0.7
(f pid=23032)                  opentelemetry-semantic-conventions==0.20b0
(f pid=23032)                  zipp==3.19.2
(f pid=23032)                  cachetools==5.3.2
(f pid=23032)                  opencensus==0.11.3
(f pid=23032)                  pyasn1-modules==0.3.0
(f pid=23032)                  attrs==21.4.0
(f pid=23032)                  cupy-cuda12x==13.1.0
(f pid=23032)                  gymnasium==1.0.0
(f pid=23032)                  memray==1.10.0
(f pid=23032)                  pydantic==2.5.0
(f pid=23032)                  opencensus-context==0.1.3
(f pid=23032)                  google-api-core==1.34.0
(f pid=23032)                  async-timeout==4.0.3
(f pid=23032)                  Jinja2==3.1.2
(f pid=23032)                  uvloop==0.19.0
(f pid=23032)                  sniffio==1.3.1
(f pid=23032)                  filelock==3.13.1
(f pid=23032)                  pyOpenSSL==23.0.0
(f pid=23032)                  scipy==1.11.4
(f pid=23032)                  smart-open==6.2.0
(f pid=23032)                  dm-tree==0.1.8
(f pid=23032)                  colorful==0.5.5
(f pid=23032)                  lazy_loader==0.4
(f pid=23032)                  python-dotenv==1.0.1
(f pid=23032)                  requests==2.31.0
(f pid=23032)                  protobuf==3.20.3
(f pid=23032)                  fastrlock==0.8.2
(f pid=23032)                  opentelemetry-proto==1.1.0
(f pid=23032)                  exceptiongroup==1.2.2
(f pid=23032)                  starlette==0.36.3
(f pid=23032)                  aiosignal==1.3.1
(f pid=23032)                  fastapi==0.109.2
(f pid=23032)                  rich==13.3.2
(f pid=23032)                  aiohttp==3.9.5
(f pid=23032)                  markdown-it-py==2.2.0
(f pid=23032)                  MarkupSafe==2.1.3
(f pid=23032)                  opentelemetry-exporter-otlp-proto-grpc==1.1.0
(f pid=23032)                  fsspec==2023.5.0
(f pid=23032)                  pyrsistent==0.20.0
(f pid=23032)                  backoff==1.10.0
(f pid=23032)                  h11==0.12.0
(f pid=23032)                  pandas==1.5.3
(f pid=23032)                  distlib==0.3.7
(f pid=23032)                  numpy==1.26.4
(f pid=23032)                  google-auth==2.23.4
(f pid=23032)                  aiohttp-cors==0.7.0
(f pid=23032)                  typing_extensions==4.8.0
(f pid=23032)                  uvicorn==0.22.0
(f pid=23032)                  cffi==1.16.0
(f pid=23032)                  cloudpickle==2.2.0
(f pid=23032)                  certifi==2023.11.17
(f pid=23032)                  prometheus-client==0.19.0
(f pid=23032)                  rsa==4.7.2
(f pid=23032)                  websockets==11.0.3
(f pid=23032)                  imageio==2.34.2
(f pid=23032)                  shellingham==1.5.4
(f pid=23032)                  pytz==2022.7.1
(f pid=23032)                  opentelemetry-api==1.1.0
(f pid=23032)                  lz4==4.3.3
(f pid=23032)                  py-spy==0.3.14
(f pid=23032)                  tifffile==2024.7.21
(f pid=23032)                  watchfiles==0.19.0
(f pid=23032)                  anyio==3.7.1
(f pid=23032) 
(f pid=23032) I+00000.172: Listening for incoming Client connections on 127.0.0.1:5678...
(f pid=23032) 
(f pid=23032) I+00000.173: Listening for incoming Server connections on 127.0.0.1:43397...
(f pid=23032) 
(f pid=23032) I+00000.173: Sending endpoints info to debug server at localhost:49867:
(f pid=23032)              {
(f pid=23032)                  "client": {
(f pid=23032)                      "host": "127.0.0.1",
(f pid=23032)                      "port": 5678
(f pid=23032)                  },
(f pid=23032)                  "server": {
(f pid=23032)                      "host": "127.0.0.1",
(f pid=23032)                      "port": 43397
(f pid=23032)                  }
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) I+00000.176: Accepted incoming Server connection from 127.0.0.1:42676.
(f pid=23032) 
(f pid=23032) D+00000.177: Starting message loop for channel Server[?]
(f pid=23032) 
(f pid=23032) D+00000.177: Server[?] <-- {
(f pid=23032)                  "seq": 1,
(f pid=23032)                  "type": "request",
(f pid=23032)                  "command": "pydevdAuthorize",
(f pid=23032)                  "arguments": {
(f pid=23032)                      "debugServerAccessToken": "247ce65814d99171b39b06f26f142e33cf69e07fab0b8e19aa4a2e2c8646ff08"
(f pid=23032)                  }
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) D+00000.177: Server[?] --> {
(f pid=23032)                  "pydevd_cmd_id": 502,
(f pid=23032)                  "seq": 2,
(f pid=23032)                  "type": "response",
(f pid=23032)                  "request_seq": 1,
(f pid=23032)                  "success": true,
(f pid=23032)                  "command": "pydevdAuthorize",
(f pid=23032)                  "body": {
(f pid=23032)                      "clientAccessToken": null
(f pid=23032)                  }
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) D+00000.178: Server[?] <-- {
(f pid=23032)                  "seq": 2,
(f pid=23032)                  "type": "request",
(f pid=23032)                  "command": "pydevdSystemInfo"
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) D+00000.219: Server[?] --> {
(f pid=23032)                  "pydevd_cmd_id": 502,
(f pid=23032)                  "seq": 4,
(f pid=23032)                  "type": "response",
(f pid=23032)                  "request_seq": 2,
(f pid=23032)                  "success": true,
(f pid=23032)                  "command": "pydevdSystemInfo",
(f pid=23032)                  "body": {
(f pid=23032)                      "python": {
(f pid=23032)                          "version": "3.9.20final0",
(f pid=23032)                          "implementation": {
(f pid=23032)                              "name": "cpython",
(f pid=23032)                              "version": "3.9.20final0",
(f pid=23032)                              "description": "CPython"
(f pid=23032)                          }
(f pid=23032)                      },
(f pid=23032)                      "platform": {
(f pid=23032)                          "name": "linux"
(f pid=23032)                      },
(f pid=23032)                      "process": {
(f pid=23032)                          "pid": 23032,
(f pid=23032)                          "ppid": 161,
(f pid=23032)                          "executable": "/home/ray/anaconda3/bin/python",
(f pid=23032)                          "bitness": 64
(f pid=23032)                      },
(f pid=23032)                      "pydevd": {
(f pid=23032)                          "usingCython": true,
(f pid=23032)                          "usingFrameEval": false
(f pid=23032)                      }
(f pid=23032)                  }
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) I+00000.219: No active debug session for parent process of Server[pid=23032].
(f pid=23032) 
(f pid=23032) 
(f pid=23032) ----------------------------------------
(f pid=23032) Filename: /tmp/debugpy.server-23032.log
(f pid=23032) Contents:
(f pid=23032) I+00000.005: Linux-5.15.0-72-generic-x86_64-with-glibc2.35 x86_64
(f pid=23032)              CPython 3.9.20 (64-bit)
(f pid=23032)              debugpy 1.8.9
(f pid=23032) 
(f pid=23032) I+00000.156: Initial environment:
(f pid=23032)              
(f pid=23032)              System paths:
(f pid=23032)                  sys.executable: /home/ray/anaconda3/bin/python(/home/ray/anaconda3/bin/python3.9)
(f pid=23032)                  sys.prefix: /home/ray/anaconda3
(f pid=23032)                  sys.base_prefix: /home/ray/anaconda3
(f pid=23032)                  sys.real_prefix: <missing>
(f pid=23032)                  site.getsitepackages(): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  site.getusersitepackages(): /home/ray/.local/lib/python3.9/site-packages
(f pid=23032)                  sys.path (site-packages): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  sysconfig.get_path('stdlib'): /home/ray/anaconda3/lib/python3.9
(f pid=23032)                  sysconfig.get_path('platstdlib'): /home/ray/anaconda3/lib/python3.9
(f pid=23032)                  sysconfig.get_path('purelib'): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  sysconfig.get_path('platlib'): /home/ray/anaconda3/lib/python3.9/site-packages
(f pid=23032)                  sysconfig.get_path('include'): /home/ray/anaconda3/include/python3.9
(f pid=23032)                  sysconfig.get_path('scripts'): /home/ray/anaconda3/bin
(f pid=23032)                  sysconfig.get_path('data'): /home/ray/anaconda3
(f pid=23032)                  os.__file__: /home/ray/anaconda3/lib/python3.9/os.py
(f pid=23032)                  threading.__file__: /home/ray/anaconda3/lib/python3.9/threading.py
(f pid=23032)                  debugpy.__file__: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/__init__.py
(f pid=23032)              
(f pid=23032)              Installed packages:
(f pid=23032)                  colorama==0.4.6
(f pid=23032)                  setproctitle==1.2.2
(f pid=23032)                  psutil==6.1.0
(f pid=23032)                  conda-libmamba-solver==24.1.0
(f pid=23032)                  PyJWT==2.9.0
(f pid=23032)                  conda-package-handling==2.3.0
(f pid=23032)                  wheel==0.44.0
(f pid=23032)                  knack==0.10.1
(f pid=23032)                  setuptools==71.1.0
(f pid=23032)                  google-api-python-client==1.7.8
(f pid=23032)                  pkginfo==1.11.2
(f pid=23032)                  oauthlib==3.2.2
(f pid=23032)                  httplib2==0.22.0
(f pid=23032)                  msrestazure==0.6.4
(f pid=23032)                  pyparsing==3.2.0
(f pid=23032)                  isodate==0.7.2
(f pid=23032)                  archspec==0.2.3
(f pid=23032)                  Brotli==1.0.9
(f pid=23032)                  Cython==0.29.37
(f pid=23032)                  bcrypt==4.2.0
(f pid=23032)                  psutil==5.9.8
(f pid=23032)                  portalocker==2.10.1
(f pid=23032)                  azure-mgmt-compute==23.1.0
(f pid=23032)                  distro==1.9.0
(f pid=23032)                  jsonpatch==1.33
(f pid=23032)                  boltons==23.0.0
(f pid=23032)                  jsonpointer==2.1
(f pid=23032)                  google-auth-httplib2==0.2.0
(f pid=23032)                  ruamel.yaml==0.18.6
(f pid=23032)                  azure-cli-telemetry==1.0.8
(f pid=23032)                  flatbuffers==24.3.25
(f pid=23032)                  cryptography==38.0.1
(f pid=23032)                  azure-mgmt-resource==20.0.0
(f pid=23032)                  anaconda-anon-usage==0.4.4
(f pid=23032)                  conda==24.9.2
(f pid=23032)                  tqdm==4.66.5
(f pid=23032)                  adal==1.2.7
(f pid=23032)                  uritemplate==3.0.1
(f pid=23032)                  botocore==1.29.165
(f pid=23032)                  jmespath==1.0.1
(f pid=23032)                  pip==24.2
(f pid=23032)                  applicationinsights==0.11.10
(f pid=23032)                  azure-mgmt-core==1.5.0
(f pid=23032)                  zstandard==0.23.0
(f pid=23032)                  requests-oauthlib==2.0.0
(f pid=23032)                  azure-identity==1.10.0
(f pid=23032)                  humanfriendly==10.0
(f pid=23032)                  msal==1.18.0b1
(f pid=23032)                  ruamel.yaml.clib==0.2.8
(f pid=23032)                  azure-mgmt-network==19.0.0
(f pid=23032)                  google-oauth==1.0.1
(f pid=23032)                  Pygments==2.18.0
(f pid=23032)                  pluggy==1.0.0
(f pid=23032)                  libmambapy==1.5.8
(f pid=23032)                  idna==3.7
(f pid=23032)                  paramiko==2.12.0
(f pid=23032)                  menuinst==2.1.2
(f pid=23032)                  s3transfer==0.6.2
(f pid=23032)                  argcomplete==1.12.3
(f pid=23032)                  msal-extensions==1.0.0
(f pid=23032)                  conda-content-trust==0.2.0
(f pid=23032)                  azure-core==1.32.0
(f pid=23032)                  msrest==0.7.1
(f pid=23032)                  PySocks==1.7.1
(f pid=23032)                  tabulate==0.9.0
(f pid=23032)                  boto3==1.26.76
(f pid=23032)                  PyNaCl==1.5.0
(f pid=23032)                  azure-common==1.1.28
(f pid=23032)                  conda_package_streaming==0.10.0
(f pid=23032)                  redis==3.5.3
(f pid=23032)                  pycparser==2.21
(f pid=23032)                  frozendict==2.4.2
(f pid=23032)                  pycosat==0.6.6
(f pid=23032)                  azure-cli-core==2.40.0
(f pid=23032)                  decorator==5.1.1
(f pid=23032)                  parso==0.8.4
(f pid=23032)                  traitlets==5.14.3
(f pid=23032)                  executing==2.1.0
(f pid=23032)                  prompt_toolkit==3.0.48
(f pid=23032)                  debugpy==1.8.9
(f pid=23032)                  pure_eval==0.2.3
(f pid=23032)                  stack-data==0.6.3
(f pid=23032)                  matplotlib-inline==0.1.7
(f pid=23032)                  jedi==0.19.2
(f pid=23032)                  wcwidth==0.2.13
(f pid=23032)                  pexpect==4.9.0
(f pid=23032)                  asttokens==3.0.0
(f pid=23032)                  ipython==8.18.1
(f pid=23032)                  ptyprocess==0.7.0
(f pid=23032)                  opentelemetry-exporter-otlp==1.1.0
(f pid=23032)                  PyYAML==6.0.1
(f pid=23032)                  scikit-image==0.24.0
(f pid=23032)                  virtualenv==20.25.3
(f pid=23032)                  multidict==6.0.5
(f pid=23032)                  httptools==0.6.4
(f pid=23032)                  pydantic_core==2.14.1
(f pid=23032)                  charset-normalizer==3.3.2
(f pid=23032)                  pillow==10.3.0
(f pid=23032)                  ray==2.39.0
(f pid=23032)                  importlib-metadata==6.11.0
(f pid=23032)                  platformdirs==3.11.0
(f pid=23032)                  click==8.1.7
(f pid=23032)                  pyasn1==0.5.1
(f pid=23032)                  annotated-types==0.6.0
(f pid=23032)                  python-dateutil==2.8.2
(f pid=23032)                  jsonschema==4.17.3
(f pid=23032)                  opentelemetry-sdk==1.1.0
(f pid=23032)                  urllib3==1.26.19
(f pid=23032)                  frozenlist==1.4.1
(f pid=23032)                  six==1.16.0
(f pid=23032)                  packaging==23.0
(f pid=23032)                  yarl==1.9.4
(f pid=23032)                  pyarrow==14.0.2
(f pid=23032)                  grpcio==1.66.2
(f pid=23032)                  Farama-Notifications==0.0.4
(f pid=23032)                  mdurl==0.1.2
(f pid=23032)                  googleapis-common-protos==1.61.0
(f pid=23032)                  tensorboardX==2.6.2.2
(f pid=23032)                  networkx==3.2.1
(f pid=23032)                  typer==0.12.3
(f pid=23032)                  msgpack==1.0.7
(f pid=23032)                  opentelemetry-semantic-conventions==0.20b0
(f pid=23032)                  zipp==3.19.2
(f pid=23032)                  cachetools==5.3.2
(f pid=23032)                  opencensus==0.11.3
(f pid=23032)                  pyasn1-modules==0.3.0
(f pid=23032)                  attrs==21.4.0
(f pid=23032)                  cupy-cuda12x==13.1.0
(f pid=23032)                  gymnasium==1.0.0
(f pid=23032)                  memray==1.10.0
(f pid=23032)                  pydantic==2.5.0
(f pid=23032)                  opencensus-context==0.1.3
(f pid=23032)                  google-api-core==1.34.0
(f pid=23032)                  async-timeout==4.0.3
(f pid=23032)                  Jinja2==3.1.2
(f pid=23032)                  uvloop==0.19.0
(f pid=23032)                  sniffio==1.3.1
(f pid=23032)                  filelock==3.13.1
(f pid=23032)                  pyOpenSSL==23.0.0
(f pid=23032)                  scipy==1.11.4
(f pid=23032)                  smart-open==6.2.0
(f pid=23032)                  dm-tree==0.1.8
(f pid=23032)                  colorful==0.5.5
(f pid=23032)                  lazy_loader==0.4
(f pid=23032)                  python-dotenv==1.0.1
(f pid=23032)                  requests==2.31.0
(f pid=23032)                  protobuf==3.20.3
(f pid=23032)                  fastrlock==0.8.2
(f pid=23032)                  opentelemetry-proto==1.1.0
(f pid=23032)                  exceptiongroup==1.2.2
(f pid=23032)                  starlette==0.36.3
(f pid=23032)                  aiosignal==1.3.1
(f pid=23032)                  fastapi==0.109.2
(f pid=23032)                  rich==13.3.2
(f pid=23032)                  aiohttp==3.9.5
(f pid=23032)                  markdown-it-py==2.2.0
(f pid=23032)                  MarkupSafe==2.1.3
(f pid=23032)                  opentelemetry-exporter-otlp-proto-grpc==1.1.0
(f pid=23032)                  fsspec==2023.5.0
(f pid=23032)                  pyrsistent==0.20.0
(f pid=23032)                  backoff==1.10.0
(f pid=23032)                  h11==0.12.0
(f pid=23032)                  pandas==1.5.3
(f pid=23032)                  distlib==0.3.7
(f pid=23032)                  numpy==1.26.4
(f pid=23032)                  google-auth==2.23.4
(f pid=23032)                  aiohttp-cors==0.7.0
(f pid=23032)                  typing_extensions==4.8.0
(f pid=23032)                  uvicorn==0.22.0
(f pid=23032)                  cffi==1.16.0
(f pid=23032)                  cloudpickle==2.2.0
(f pid=23032)                  certifi==2023.11.17
(f pid=23032)                  prometheus-client==0.19.0
(f pid=23032)                  rsa==4.7.2
(f pid=23032)                  websockets==11.0.3
(f pid=23032)                  imageio==2.34.2
(f pid=23032)                  shellingham==1.5.4
(f pid=23032)                  pytz==2022.7.1
(f pid=23032)                  opentelemetry-api==1.1.0
(f pid=23032)                  lz4==4.3.3
(f pid=23032)                  py-spy==0.3.14
(f pid=23032)                  tifffile==2024.7.21
(f pid=23032)                  watchfiles==0.19.0
(f pid=23032)                  anyio==3.7.1
(f pid=23032) 
(f pid=23032) D+00000.156: listen(('127.0.0.1', 5678), **{})
(f pid=23032) 
(f pid=23032) I+00000.156: Initial debug configuration: {
(f pid=23032)                  "qt": "none",
(f pid=23032)                  "subProcess": true,
(f pid=23032)                  "python": "/home/ray/anaconda3/bin/python",
(f pid=23032)                  "pythonEnv": {}
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) I+00000.157: Waiting for adapter endpoints on 127.0.0.1:49867...
(f pid=23032) 
(f pid=23032) I+00000.157: debugpy.listen() spawning adapter: [
(f pid=23032)                  "/home/ray/anaconda3/bin/python",
(f pid=23032)                  "/home/ray/anaconda3/lib/python3.9/site-packages/debugpy/adapter",
(f pid=23032)                  "--for-server",
(f pid=23032)                  "49867",
(f pid=23032)                  "--host",
(f pid=23032)                  "127.0.0.1",
(f pid=23032)                  "--port",
(f pid=23032)                  "5678",
(f pid=23032)                  "--server-access-token",
(f pid=23032)                  "247ce65814d99171b39b06f26f142e33cf69e07fab0b8e19aa4a2e2c8646ff08",
(f pid=23032)                  "--log-dir",
(f pid=23032)                  "/tmp"
(f pid=23032)              ]
(f pid=23032) 
(f pid=23032) I+00000.386: Endpoints received from adapter: {
(f pid=23032)                  "client": {
(f pid=23032)                      "host": "127.0.0.1",
(f pid=23032)                      "port": 5678
(f pid=23032)                  },
(f pid=23032)                  "server": {
(f pid=23032)                      "host": "127.0.0.1",
(f pid=23032)                      "port": 43397
(f pid=23032)                  }
(f pid=23032)              }
(f pid=23032) 
(f pid=23032) I+00000.386: Adapter is accepting incoming client connections on 127.0.0.1:5678
(f pid=23032) 
(f pid=23032) D+00000.386: pydevd.settrace(*(), **{'host': '127.0.0.1', 'port': 43397, 'wait_for_ready_to_run': False, 'block_until_connected': True, 'access_token': '247ce65814d99171b39b06f26f142e33cf69e07fab0b8e19aa4a2e2c8646ff08', 'suspend': False, 'patch_multiprocessing': True, 'dont_trace_start_patterns': ('/home/ray/anaconda3/lib/python3.9/site-packages/debugpy',), 'dont_trace_end_patterns': ('debugpy_launcher.py',)})
(f pid=23032) 
(f pid=23032) I+00000.507: pydevd is connected to adapter at 127.0.0.1:43397
(f pid=23032) 
(f pid=23032) 
(f pid=23032) ----------------------------------------
(f pid=23032) Filename: /tmp/debugpy.pydevd.23032.log
(f pid=23032) Contents:
(f pid=23032) 0.05s - Using GEVENT_SUPPORT: False
(f pid=23032) 0.00s - Using GEVENT_SHOW_PAUSED_GREENLETS: False
(f pid=23032) 0.00s - pydevd __file__: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py
(f pid=23032) 0.00s - Using PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING: False
(f pid=23032) 0.39s - pydevd: Use libraries filter: False
(f pid=23032) 
(f pid=23032) 0.00s - IDE_PROJECT_ROOTS []
(f pid=23032) 
(f pid=23032) 0.00s - Collecting default library roots.
(f pid=23032) 0.00s - LIBRARY_ROOTS ['/home/ray/.local/lib/python3.9/site-packages', '/home/ray/anaconda3/lib/python3.9', '/home/ray/anaconda3/lib/python3.9/site-packages']
(f pid=23032) 
(f pid=23032) 0.00s - Apply debug mode: debugpy-dap
(f pid=23032) 0.00s - Preimport: /home/ray/anaconda3/lib/python3.9/site-packages;debugpy._vendored.force_pydevd
(f pid=23032) 0.00s - Connecting to 127.0.0.1:43397
(f pid=23032) 0.00s - Connected to: <socket.socket fd=41, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 42676), raddr=('127.0.0.1', 43397)>.
(f pid=23032) 0.00s - Applying patching to hide pydevd threads (Py3 version).
(f pid=23032) 0.00s - Process PydevdAuthorizeRequest: {
(f pid=23032)     "arguments": {
(f pid=23032)         "debugServerAccessToken": "247ce65814d99171b39b06f26f142e33cf69e07fab0b8e19aa4a2e2c8646ff08"
(f pid=23032)     },
(f pid=23032)     "command": "pydevdAuthorize",
(f pid=23032)     "seq": 1,
(f pid=23032)     "type": "request"
(f pid=23032) }
(f pid=23032) 
(f pid=23032) 0.00s - sending cmd (http_json) -->           CMD_RETURN {"type": "response", "request_seq": 1, "success": true, "command": "pydevdAuthorize", "body": {"clientAccessToken": null}, "seq": 2, "pydevd_cmd_id": 502}
(f pid=23032) 
(f pid=23032) 0.00s - Process PydevdSystemInfoRequest: {
(f pid=23032)     "arguments": {},
(f pid=23032)     "command": "pydevdSystemInfo",
(f pid=23032)     "seq": 2,
(f pid=23032)     "type": "request"
(f pid=23032) }
(f pid=23032) 
(f pid=23032) 0.00s - sending cmd (http_json) -->           CMD_RETURN {"type": "response", "request_seq": 2, "success": true, "command": "pydevdSystemInfo", "body": {"python": {"version": "3.9.20final0", "implementation": {"name": "cpython", "version": "3.9.20final0", "description": "CPython"}}, "platform": {"name": "linux"}, "process": {"pid": 23032, "ppid": 161, "executable": "/home/ray/anaconda3/bin/python", "bitness": 64}, "pydevd": {"usingCython": true, "usingFrameEval": false}}, "seq": 4, "pydevd_cmd_id": 502}
(f pid=23032) 
(f pid=23032) 0.10s - Successfully Loaded helper lib to set tracing to all threads.
(f pid=23032) 0.01s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - wait
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - wait
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py - _on_run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py - run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap_inner
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - wait
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - wait
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py - _on_run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py - run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap_inner
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py - _read_line
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py - _on_run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py - run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap_inner
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - wait
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/queue.py - get
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_comm.py - _on_run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/_pydevd_bundle/pydevd_daemon_thread.py - run
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap_inner
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/threading.py - _bootstrap
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py - set_tracing_for_untraced_contexts
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py - _locked_settrace
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py - settrace
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/server/api.py - _settrace
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/server/api.py - listen
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/server/api.py - debug
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/public_api.py - wrapper
(f pid=23032) 0.00s - Set tracing of frame: /home/ray/test.py - start_and_check_debugpy
(f pid=23032) 0.00s - Set tracing of frame: /home/ray/test.py - f
(f pid=23032) 0.00s - Set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/worker.py - main_loop
(f pid=23032) 0.00s - Set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/ray/_private/workers/default_worker.py - <module>
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/_vendored/pydevd/pydevd.py - settrace
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/server/api.py - _settrace
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/server/api.py - listen
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/server/api.py - debug
(f pid=23032) 0.00s - SKIP set tracing of frame: /home/ray/anaconda3/lib/python3.9/site-packages/debugpy/public_api.py - wrapper
(f pid=23032) 
(f pid=23032) ----------------------------------------
(f pid=23032) before assert 5678 is in use
(f pid=23032) after assert 5678 is in use
(base) ray@raycluster-sample-head-nq2z8:~$

I also ran it with Ray 2.39 like you did -- if you are able to repro it in kind and can share how I'd love to take a look. If you can only repro it on a real k8s cluster, it would be helpful to get more information about your setup :)

Same result when I do ray job submit -- python test.py.

@pcmoritz
Copy link
Contributor

pcmoritz commented Dec 6, 2024

I got the debugger working end-to-end on KubeRay btw and documented the steps to run it here #49116

If the problem persists, please describe your environment in more detail :)

@koenlek
Copy link
Author

koenlek commented Dec 6, 2024

Thanks, this is very helpful! I'll try if we can get it working with kind too and from there narrow down the differences in environment to hopefully find the cause. I'll keep you posted.

pcmoritz added a commit that referenced this issue Dec 9, 2024
…#49116)

<!-- Thank you for your contribution! Please review
https://github.com/ray-project/ray/blob/master/CONTRIBUTING.rst before
opening a pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

This addresses #45541 and
#49014

## Related issue number

<!-- For example: "Closes #1234" -->

## Checks

- [ ] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [ ] I've run `scripts/format.sh` to lint the changes in this PR.
- [ ] I've included any doc changes needed for
https://docs.ray.io/en/master/.
- [ ] I've added any new APIs to the API Reference. For example, if I
added a
method in Tune, I've added it in `doc/source/tune/api/` under the
           corresponding `.rst` file.
- [ ] I've made sure the tests are passing. Note that there might be a
few flaky tests, see the recent failures at https://flakey-tests.ray.io/
- Testing Strategy
   - [ ] Unit tests
   - [ ] Release tests
   - [ ] This PR is not tested :(

---------

Signed-off-by: Philipp Moritz <[email protected]>
Co-authored-by: angelinalg <[email protected]>
ujjawal-khare pushed a commit to ujjawal-khare-27/ray that referenced this issue Dec 17, 2024
…ray-project#49116)

<!-- Thank you for your contribution! Please review
https://github.com/ray-project/ray/blob/master/CONTRIBUTING.rst before
opening a pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

This addresses ray-project#45541 and
ray-project#49014

## Related issue number

<!-- For example: "Closes ray-project#1234" -->

## Checks

- [ ] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [ ] I've run `scripts/format.sh` to lint the changes in this PR.
- [ ] I've included any doc changes needed for
https://docs.ray.io/en/master/.
- [ ] I've added any new APIs to the API Reference. For example, if I
added a
method in Tune, I've added it in `doc/source/tune/api/` under the
           corresponding `.rst` file.
- [ ] I've made sure the tests are passing. Note that there might be a
few flaky tests, see the recent failures at https://flakey-tests.ray.io/
- Testing Strategy
   - [ ] Unit tests
   - [ ] Release tests
   - [ ] This PR is not tested :(

---------

Signed-off-by: Philipp Moritz <[email protected]>
Co-authored-by: angelinalg <[email protected]>
Signed-off-by: ujjawal-khare <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something that is supposed to be working; but isn't debugger triage Needs triage (eg: priority, bug/not-bug, and owning component)
Projects
None yet
Development

No branches or pull requests

4 participants