Skip to content

[devx] Fix 'uv run' command line parsing#53838

Merged
pcmoritz merged 20 commits intoray-project:masterfrom
pcmoritz:fix-uv-run-arg-parsing
Jun 16, 2025
Merged

[devx] Fix 'uv run' command line parsing#53838
pcmoritz merged 20 commits intoray-project:masterfrom
pcmoritz:fix-uv-run-arg-parsing

Conversation

@pcmoritz
Copy link
Copy Markdown
Contributor

@pcmoritz pcmoritz commented Jun 15, 2025

Why are these changes needed?

It is not safe to use the current process' cmdline to determine the "uv run" commandline args, since e.g. multiprocessing spawn will garble the commandline, so our current way of detecting the "uv run" commandline won't work if the process that runs ray.init was created with multiprocessing spawn like it is the case in some vllm settings. Also the command line might have been modified by setproctitle.

This PR changes the extraction of the uv run command line to a more robust way that doesn't involve any state in the current process, only the uv command line of the uv shim process, and also adds a regression test.

It also makes it possible to run uv run -m <module> and adds a regression test for that as well.

Related issue number

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 :(

@pcmoritz pcmoritz added the go add ONLY when ready to merge, run all tests label Jun 15, 2025
@pcmoritz
Copy link
Copy Markdown
Contributor Author

@erictang000 I verified that the training works with these changes now

@pcmoritz pcmoritz merged commit 57cdfed into ray-project:master Jun 16, 2025
5 checks passed
elliot-barn pushed a commit that referenced this pull request Jun 18, 2025
<!-- 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?

It is not safe to use the current process' cmdline to determine the "uv
run" commandline args, since e.g. multiprocessing spawn will garble the
commandline, so our current way of detecting the "uv run" commandline
won't work if the process that runs `ray.init` was created with
multiprocessing spawn like it is the case in some vllm settings. Also
the command line might have been modified by setproctitle.

This PR changes the extraction of the `uv run` command line to a more
robust way that doesn't involve any state in the current process, only
the uv command line of the uv shim process, and also adds a regression
test.

It also makes it possible to run `uv run -m <module>` and adds a
regression test for that as well.

## 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 :(

---------

Co-authored-by: pcmoritz <pcmoritz@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
minerharry pushed a commit to minerharry/ray that referenced this pull request Jun 27, 2025
<!-- 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?

It is not safe to use the current process' cmdline to determine the "uv
run" commandline args, since e.g. multiprocessing spawn will garble the
commandline, so our current way of detecting the "uv run" commandline
won't work if the process that runs `ray.init` was created with
multiprocessing spawn like it is the case in some vllm settings. Also
the command line might have been modified by setproctitle.

This PR changes the extraction of the `uv run` command line to a more
robust way that doesn't involve any state in the current process, only
the uv command line of the uv shim process, and also adds a regression
test.

It also makes it possible to run `uv run -m <module>` and adds a
regression test for that as well.

## 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 :(

---------

Co-authored-by: pcmoritz <pcmoritz@anyscale.com>
elliot-barn pushed a commit that referenced this pull request Jul 2, 2025
<!-- 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?

It is not safe to use the current process' cmdline to determine the "uv
run" commandline args, since e.g. multiprocessing spawn will garble the
commandline, so our current way of detecting the "uv run" commandline
won't work if the process that runs `ray.init` was created with
multiprocessing spawn like it is the case in some vllm settings. Also
the command line might have been modified by setproctitle.

This PR changes the extraction of the `uv run` command line to a more
robust way that doesn't involve any state in the current process, only
the uv command line of the uv shim process, and also adds a regression
test.

It also makes it possible to run `uv run -m <module>` and adds a
regression test for that as well.

## 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 :(

---------

Co-authored-by: pcmoritz <pcmoritz@anyscale.com>
Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

go add ONLY when ready to merge, run all tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants