Skip to content

Conversation

@avigyabb
Copy link
Owner

@avigyabb avigyabb commented Sep 2, 2025

Why are these changes needed?

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

zcin and others added 30 commits September 4, 2025 23:55
…56249)

## Why are these changes needed?

Use `collections` instead of `toolz` in `test_metrics_utils`

## Related issue number

ray-project#56227

Signed-off-by: Cindy Zhang <cindyzyx9@gmail.com>
…ask_ref_count > 0 (ray-project#56123)

Signed-off-by: hejialing.hjl <hejialing.hjl@bytedance.com>
Signed-off-by: dayshah <dhyey2019@gmail.com>
Co-authored-by: hejialing.hjl <hejialing.hjl@bytedance.com>
…56264)

Signed-off-by: Kourosh Hakhamaneshi <kourosh@anyscale.com>
…oject#56258)

We should not skip it, since it doesn't need the tensordict dependency.
Ray proactively triggers gc.collect() on idle workers to release Python
objects that may still hold Plasma shared memory (shm) references.
In the current implementation in (_raylet.pyx gc_collect()), Ray calls
gc.collect() from Cython under a with gil block periodically.
If the Python object graph is complex (e.g., cyclic references with
finalizers), gc.collect() may take a long time. During this period,
since the GIL is held for the entire collection, user code is completely
frozen if gc.collect() time is longer than the periodic interval (e.g.,
10s).

We propose decoupling GC execution from the RPC call:

gc_collect in Cython should not directly run gc.collect().
Instead, it should "signal an event" with minimum execution time (e.g.,
using a threading.Event or similar).
A dedicated Python GC thread consumes this event and executes
gc.collect() asynchronously, with a configurable GC interval.

## Related issue number

Closes ray-project#55837

---------

Signed-off-by: Mao Yancan <yancan.mao@bytedance.com>
Co-authored-by: Mao Yancan <yancan.mao@bytedance.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
…oudpickle/` (ray-project#56081)

Signed-off-by: Gagandeep Singh <gdp.1807@gmail.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
…n ray-core directories (ray-project#56275)

Signed-off-by: Potato <tanxinyu@apache.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…`Pending Demands` and `From request_resources` (ray-project#55787)

Signed-off-by: Rueian <rueian@anyscale.com>
Signed-off-by: Rueian <rueiancsie@gmail.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
…56091)

## Why are these changes needed?
Update the from uris release test to use the new code from
ray-project#55824.

## 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: Matthew Owen <mowen@anyscale.com>
### Summary
This pull request introduces Dead-Letter Queue (DLQ) functionality for
async inference. Users can configure two DLQs:
1. `failed_task_queue` – for tasks that fail during normal execution.
2. `unprocessable_task_queue` – for tasks that cannot be processed
(e.g., deserialization failures or missing handlers).

All unprocessable tasks will automatically be routed to the
unprocessable_task_queue, while other failures will go to the
failed_task_queue. The detailed behavior is defined in the [RFC
document](https://docs.google.com/document/d/1Ix7uKrP3Q5LCjJ5wZG47ncUi5ScbYzyrtFXsYSlGnwg/edit?tab=t.0).

### Changes in this PR
1. Integrated Celery signals (task_failure, task_unknown) to handle task
failures.
2. Added helper functions for moving tasks into the correct DLQ.
3. Introduced tests to verify DLQ routing logic across different failure
scenarios.
4. Added a persistence test to ensure tasks are retried at-least-once as
per the [RFC’s NFR
requirements](https://docs.google.com/document/d/1Ix7uKrP3Q5LCjJ5wZG47ncUi5ScbYzyrtFXsYSlGnwg/edit?tab=t.0#heading=h.4om3bw49w03x).

### Follow-up work (to be added in a separate PR)
Additional tests will be added in the next PR to keep this one focused
and manageable. These will cover:

1. Task processor metrics
2. Task processor health checks
3. Task cancellation (cancel_task)
4. Multiple task consumers in a single Serve application
5. Ensuring failed tasks are retried exactly max_retry + 1 times

---------

Signed-off-by: harshit <harshit@anyscale.com>
<img width="882" height="817" alt="image"
src="https://github.com/user-attachments/assets/e28aea5c-68a9-4834-b99e-5269cd881ea3"
/>

---------

Signed-off-by: Linkun <github@lkchen.net>
Signed-off-by: Nikhil Ghosh <nikhil@anyscale.com>
Signed-off-by: dayshah <dhyey2019@gmail.com>
Signed-off-by: Edward Oakes <ed.nmi.oakes@gmail.com>
Signed-off-by: omkar <omkar@anyscale.com>
Signed-off-by: Omkar Kulkarni <omkar@anyscale.com>
Signed-off-by: Cuong Nguyen <can@anyscale.com>
Signed-off-by: zac <zac@anyscale.com>
Signed-off-by: Kourosh Hakhamaneshi <kourosh@anyscale.com>
Co-authored-by: Linkun <github@lkchen.net>
Co-authored-by: Dhyey Shah <dhyey2019@gmail.com>
Co-authored-by: ahao-anyscale <ahao@anyscale.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
Co-authored-by: Omkar Kulkarni <omkar@anyscale.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Cindy Zhang <cindyzyx9@gmail.com>
Co-authored-by: Cuong Nguyen <128072568+can-anyscale@users.noreply.github.com>
Co-authored-by: Zac Policzer <zac@anyscale.com>
Co-authored-by: Kourosh Hakhamaneshi <kourosh@anyscale.com>
Co-authored-by: Lonnie Liu <95255098+aslonnie@users.noreply.github.com>
…t#56256)

The text embedding benchmarks are currently ungrouped in buildkite. This
PR adds them to the Data group

Signed-off-by: Ricardo Decal <rdecal@anyscale.com>
…rarchy and clean it up (ray-project#56186)

Signed-off-by: irabbani <irabbani@anyscale.com>
Signed-off-by: Ibrahim Rabbani <israbbani@gmail.com>
Signed-off-by: Ibrahim Rabbani <irabbani@anyscale.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
…documentation (ray-project#56278)

Signed-off-by: Potato <tanxinyu@apache.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
ray-project#56279)

This PR systematically reviews and fixes typos, grammatical errors, and
syntax issues across all 21 `.rst` files in the `doc/source/ray-core/`
directory. The changes are minimal and surgical, preserving the original
intent and voice of the documentation while improving clarity and
correctness.

## Issues Fixed

### Grammatical Errors
- **configure.rst**: Fixed "various way" → "various ways" and improved
consistency with "Look" → "See"
- **cross-language.rst**: Fixed capitalization "ray call" → "Ray calls" 
- **ray-generator.rst**: Fixed article error "the an application" → "an
application"
- **user-spawn-processes.rst**: Fixed verb agreement "spawns" → "spawn"

### Typos
- **handling-dependencies.rst**: 
  - Fixed "what to compress" → "want to compress"
- Fixed repository name typo "example_respository" →
"example_repository"

### Syntax Issues
- **actors.rst**: Fixed reference link spacing in async actors section
- **fault-tolerance.rst**: Fixed missing underscore in code marker
`_node_affinity_scheduling_strategy_start__` →
`__node_affinity_scheduling_strategy_start__`
- **namespaces.rst**: 
- Fixed C++ code block syntax `.. code-block::` → `.. code-block:: c++`
  - Removed stray backtick at end of code line

## Files Reviewed
All 21 `.rst` files were manually reviewed following a systematic
methodology to check for:
- reStructuredText syntax errors
- Grammatical issues (subject-verb agreement, tense consistency, article
usage)
- Spelling and typos
- Technical content accuracy
- Style and formatting consistency

## Impact
These changes improve the overall quality and professionalism of the Ray
Core documentation without altering any functional content or breaking
existing links. The documentation now has better readability and fewer
distractions from minor errors.

---------

Signed-off-by: Potato <tanxinyu@apache.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…ject#56263)

Raydepsets has a single depset compilation mode which compiles ONLY the
depset referenced by name
In some cases depsets have dependencies (ex. expand and subset depend on
source depsets)
To allow for the depset dependencies to be compiled:
Subset the build graph by including the user specified target depset and
all ancestors
execute all of the depsets in build graph order

Added unit tests

---------

Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
…he same actor (ray-project#55639)

Closes ray-project#55511

Below is my complete test script.

```python
import ray
import torch
from ray.experimental.collective import create_collective_group



@ray.remote(enable_tensor_transport=True)
class Actor:
    def __init__(self):
        self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

    @ray.method(tensor_transport="gloo")
    def tensor(self):
        return torch.zeros(1, device=self.device)

    def increment(self, t):
        t = t + 1
        return t


a = Actor.remote()
b = Actor.remote()

create_collective_group([a, b], backend="torch_gloo")

t = a.tensor.remote()

t1 = a.increment.remote(t)
t2 = b.increment.remote(t)

result1, result2 = ray.get([t1, t2])

try:
    assert torch.allclose(result1, result2), "The two tensor results are not equal"
    print("Assertion passed: The values of t1 and t2 are equal")
except AssertionError as e:
    print(f"Assertion failed: {e}")

ray.shutdown()
```

Log:

<img width="852" height="113" alt="image"
src="https://github.com/user-attachments/assets/46c57ac2-6c65-4f38-a939-ffaab6ab232a"
/>


---------

Signed-off-by: daiping8 <dai.ping88@zte.com.cn>
Signed-off-by: Ping Dai <dai.ping88@zte.com.cn>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Stephanie Wang <smwang@cs.washington.edu>
<!-- 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?

<!-- Please give a short summary of the change and the problem this
solves. -->

[Data] Bump test_json timeout

Bump up test_json timeout to 6 minutes. In 3 minutes, it got 2/3rd of
the way.


https://buildkite.com/anyscale/rayturbo/builds/6172#0199175c-50ee-4076-a0dc-a6da0b207ecc


```
[2025-09-05T01:43:06Z] ================================================================================
  | [2025-09-05T01:43:06Z] ==================== Test output for //python/ray/data:test_json:
  | [2025-09-05T01:43:06Z] /opt/miniforge/lib/python3.9/site-packages/paramiko/pkey.py:82: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.
  | [2025-09-05T01:43:06Z]   "cipher": algorithms.TripleDES,
  | [2025-09-05T01:43:06Z] /opt/miniforge/lib/python3.9/site-packages/paramiko/transport.py:253: CryptographyDeprecationWarning: TripleDES has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.TripleDES and will be removed from cryptography.hazmat.primitives.ciphers.algorithms in 48.0.0.
  | [2025-09-05T01:43:06Z]   "class": algorithms.TripleDES,
  | [2025-09-05T01:43:06Z] ============================= test session starts ==============================
  | [2025-09-05T01:43:06Z] platform linux -- Python 3.9.23, pytest-7.4.4, pluggy-1.3.0 -- /opt/miniforge/bin/python3
  | [2025-09-05T01:43:06Z] cachedir: .pytest_cache
  | [2025-09-05T01:43:06Z] rootdir: /root/.cache/bazel/_bazel_root/1df605deb6d24fc8068f6e25793ec703/execroot/io_ray
  | [2025-09-05T01:43:06Z] configfile: pytest.ini
  | [2025-09-05T01:43:06Z] plugins: repeat-0.9.3, anyio-3.7.1, fugue-0.8.7, aiohttp-1.1.0, asyncio-0.17.2, docker-tools-3.1.3, forked-1.4.0, pytest_httpserver-1.1.3, lazy-fixtures-1.1.2, mock-3.14.0, remotedata-0.3.2, rerunfailures-11.1.2, shutil-1.8.1, sphinx-0.5.1.dev0, sugar-0.9.5, timeout-2.1.0, virtualenv-1.8.1, typeguard-2.13.3
  | [2025-09-05T01:43:06Z] asyncio: mode=auto
  | [2025-09-05T01:43:06Z] timeout: 180.0s
  | [2025-09-05T01:43:06Z] timeout method: signal
  | [2025-09-05T01:43:06Z] timeout func_only: False
  | [2025-09-05T01:43:06Z] collecting ... collected 102 items
  | [2025-09-05T01:43:06Z]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioning[None] PASSED [  0%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioning[134217728] PASSED [  1%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read[None-None-local_path-None] PASSED [  2%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read[None-local_fs-local_path-None] PASSED [  3%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read[None-s3_fs-s3_path-s3_server] PASSED [  4%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read[134217728-None-local_path-None] PASSED [  5%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read[134217728-local_fs-local_path-None] PASSED [  6%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read[134217728-s3_fs-s3_path-s3_server] PASSED [  7%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_read_json_ignore_missing_paths[None-True] PASSED [  8%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_read_json_ignore_missing_paths[None-False] PASSED [  9%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_read_json_ignore_missing_paths[134217728-True] PASSED [ 10%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_read_json_ignore_missing_paths[134217728-False] PASSED [ 11%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_zipped_json_read[None] PASSED   [ 12%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_zipped_json_read[134217728] PASSED [ 13%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_read_json_fallback_from_pyarrow_failure[None] PASSED [ 14%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_read_json_fallback_from_pyarrow_failure[134217728] PASSED [ 15%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_meta_provider[None-None-local_path-None] PASSED [ 16%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_meta_provider[None-local_fs-local_path-None] PASSED [ 17%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_meta_provider[None-s3_fs-s3_path-s3_server] PASSED [ 18%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_meta_provider[134217728-None-local_path-None] PASSED [ 19%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_meta_provider[134217728-local_fs-local_path-None] PASSED [ 20%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_meta_provider[134217728-s3_fs-s3_path-s3_server] PASSED [ 21%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_read_options[None-None-local_path-None] PASSED [ 22%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_read_options[None-local_fs-local_path-None] PASSED [ 23%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_read_options[None-s3_fs-s3_path-s3_server] PASSED [ 24%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_read_options[134217728-None-local_path-None] PASSED [ 25%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_read_options[134217728-local_fs-local_path-None] PASSED [ 26%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_read_options[134217728-s3_fs-s3_path-s3_server] PASSED [ 27%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_parse_options[None-None-local_path-None] PASSED [ 28%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_parse_options[None-local_fs-local_path-None] PASSED [ 29%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_parse_options[None-s3_fs-s3_path-s3_server] PASSED [ 30%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_parse_options[134217728-None-local_path-None] PASSED [ 31%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_parse_options[134217728-local_fs-local_path-None] PASSED [ 32%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_with_parse_options[134217728-s3_fs-s3_path-s3_server] PASSED [ 33%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[None-hive-None-local_path-None] PASSED [ 34%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[None-hive-local_fs-local_path-None] PASSED [ 35%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[None-hive-s3_fs-s3_path-s3_server] PASSED [ 36%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[None-dir-None-local_path-None] PASSED [ 37%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[None-dir-local_fs-local_path-None] PASSED [ 38%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[None-dir-s3_fs-s3_path-s3_server] PASSED [ 39%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[134217728-hive-None-local_path-None] PASSED [ 40%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[134217728-hive-local_fs-local_path-None] PASSED [ 41%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[134217728-hive-s3_fs-s3_path-s3_server] PASSED [ 42%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[134217728-dir-None-local_path-None] PASSED [ 43%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[134217728-dir-local_fs-local_path-None] PASSED [ 44%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_partitioned_with_filter[134217728-dir-s3_fs-s3_path-s3_server] PASSED [ 45%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_lists[None-None] PASSED   [ 46%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_lists[None-1] PASSED      [ 47%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_lists[None-3] PASSED      [ 48%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_lists[134217728-None] PASSED [ 49%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_lists[134217728-1] PASSED [ 50%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_lists[134217728-3] PASSED [ 50%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_mixed_types[None] PASSED  [ 51%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_jsonl_mixed_types[134217728] PASSED [ 52%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_write[None] PASSED         [ 53%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_write[134217728] PASSED    [ 54%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_roundtrip[None-None] PASSED [ 55%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_roundtrip[None-2] PASSED   [ 56%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_roundtrip[134217728-None] PASSED [ 57%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_roundtrip[134217728-2] PASSED [ 58%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_small_file_unit_block_size[None-None-local_path-None] PASSED [ 59%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_small_file_unit_block_size[None-local_fs-local_path-None] PASSED [ 60%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_small_file_unit_block_size[None-s3_fs-s3_path-s3_server] PASSED [ 61%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_small_file_unit_block_size[134217728-None-local_path-None] PASSED [ 62%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_small_file_unit_block_size[134217728-local_fs-local_path-None] PASSED [ 63%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_small_file_unit_block_size[134217728-s3_fs-s3_path-s3_server] PASSED [ 64%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_file_larger_than_block_size[None-None-local_path-None] PASSED [ 65%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_file_larger_than_block_size[None-local_fs-local_path-None] FAILED [ 66%]
  | [2025-09-05T01:43:06Z] python/ray/data/tests/test_json.py::test_json_read_file_larger_than_block_size[None-s3_fs-s3_path-s3_server] -- Test timed out at 2025-09-05 01:43:03 UTC --
  | [2025-09-05T01:43:06Z] ================================================================================
  |  
```



## 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: Srinath Krishnamachari <srinath.krishnamachari@anyscale.com>
…umentation (ray-project#56068)

Signed-off-by: Potato <tanxinyu@apache.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…blems during E2E test in Anyscale environment (ray-project#56188)

Signed-off-by: Gang Zhao <gang@gang-JQ62HD2C37.local>
Co-authored-by: Gang Zhao <gang@gang-JQ62HD2C37.local>
…ontribute documentation (ray-project#56067)

Signed-off-by: Potato <tanxinyu@apache.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: angelinalg <122562471+angelinalg@users.noreply.github.com>
…OneToOne` (ray-project#56294)

## Why are these changes needed?
`Download` logical operator isn't really a map, we should use
`AbstractOneToOne` as the base class instead.

<!-- Please give a short summary of the change and the problem this
solves. -->

## 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: Matthew Owen <mowen@anyscale.com>
Signed-off-by: Matthew Owen <omatthew98@berkeley.edu>
Co-authored-by: Balaji Veeramani <bveeramani@berkeley.edu>
<!-- 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?
Adds proper type-stubbing for ObjectRef (and its cousins, ActorID,
TaskID, etc). See ray-project#53591. The ray/includes .pxi files (and the
_raylet.pxi) are inaccessible to type-checkers, so core ray objects like
ObjectRef don't have proper code-completion. While the issue extends to
many ray objects defined in includes/* and _raylet.pxi, notably
ObjectRefGenerator and similar, this PR focuses just on unique_ids.pxi
and object_ref.pxi. By adding python stub files, .pyi, that correspond
to the .pxi files, this PR allows type-checkers to understand the
contents of the cython files. Each .pyi file contains the signature of
every class and method in the .pxi files to expose (though I went ahead
and added every method for completeness).

Also, I added a `__class_getitem__` method to ObjectRef in
object_ref.pxi which mirrors how typing.Generic works, as multiple
inheritance (which would be required for generic subclassing of BaseID)
is not well supported in cython. This allows for runtime
type-subscripting (e.g. ObjectRef[int]) without error and returns a
proper annotated type.

## Related issue number

Limited-scope version of ray-project#55066, just focusing on unique_ids.pxi and
object_ref.pxi. Partially satisfies ray-project#53591.

## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] I've run `scripts/format.sh` to lint the changes in this PR.
- [x] I've included any doc changes needed for
https://docs.ray.io/en/master/.
- [x] 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.
- [x] 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
   - [x] This PR is not tested :(

---------

Signed-off-by: minerharry <miner.harry567@gmail.com>
Signed-off-by: Philipp Moritz <pcmoritz@gmail.com>
Co-authored-by: Philipp Moritz <pcmoritz@gmail.com>
… docs (ray-project#56130)

Signed-off-by: Potato <tanxinyu@apache.org>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…anager. (ray-project#56246)

This PR continues to implement the CgroupManager. CgroupManager will be
used by the Raylet to manage the cgroup hierarchy. The implementation
will be completed in subsequent PRs.

This PR stacks on ray-project#56186.

For more details about the resource isolation project see
ray-project#54703.

In this PR:
* CgroupManager now bound checks constraints (e.g. cpu.weight is within
[1,10000].
* CgroupDriver no longer bound checks constraints.

---------

Signed-off-by: Ibrahim Rabbani <irabbani@anyscale.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
Signed-off-by: Jiajun Yao <jeromeyjj@gmail.com>
…roject#56213)

Signed-off-by: Haichuan Hu <kaisennhu@gmail.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
…ct#56268)

<!-- 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 change is a follow-up for
ray-project#56105.

Now dataset size estimation is based on listed file sizes. However,
encoding ratio was still based on the file size estimates derived from
the uncompressed data size obtained from Parquet metadata.

This change is addressing that by:

- Rebasing encoding ratio to relate estimated in-memory size to the
listed file size
 - Cleaning up unused abstractions (like `ParquetMetadataProvider`)

## 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: Alexey Kudinkin <ak@anyscale.com>
aslonnie and others added 30 commits September 17, 2025 21:15
…-project#56543)

for use on building anyscale nightly images.

Signed-off-by: Lonnie Liu <lonnie@anyscale.com>
Signed-off-by: Cuong Nguyen <can@anyscale.com>
…6502)

ray-project#56405 clears the gauge metric
cache at export time, which is necessary for both correctness and
improved memory usage. This PR extends the same behavior to the C++
side, further reducing memory consumption.

When running the
[test_map.py](https://github.com/ray-project/ray/blob/master/python/ray/data/tests/test_map.py)
locally, I observed that memory usage exceeded a gigabyte without this
change, compared to only a few hundred megabytes with it. This happens
because data workloads often reuse the same worker ID for different
dataset operators, and each operator emits distinct metric labels. Since
the existing logic clears the label cache only by worker ID (and not by
other identifiers such as operator ID), the tag set can grow
unnecessarily large, as many operator name/ID labels may accumulate over
a worker’s lifecycle even when the operator lifecycle has ended).

Many of our unit tests currently assume that stale data persists for a
while, since they validate time series or sliding windows of metrics. To
align with the new behavior, I also need to refactor these tests so they
continuously emit time series data over the lifetime of the test, rather
than relying on one-off data points.

Test:
- CI

Signed-off-by: Cuong Nguyen <can@anyscale.com>
…oject#56630)

Signed-off-by: Mengjin Yan <mengjinyan3@gmail.com>
Co-authored-by: Jiajun Yao <jeromeyjj@gmail.com>
using schlex split for pre-hook command
adding unit tests

---------

Signed-off-by: elliot-barn <elliot.barnwell@anyscale.com>
… autoscaler (ray-project#56605)

Signed-off-by: daiping8 <dai.ping88@zte.com.cn>
Co-authored-by: Jiajun Yao <jeromeyjj@gmail.com>
…5567)

## Why are these changes needed?

Fix failing release test:
`learning_tests_multi_agent_cartpole_appo_multi_gpu`.

## Related issue number

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

## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] 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
   - [x] Unit tests
   - [x] Release tests
   - [ ] This PR is not tested :(

---------

Signed-off-by: Kamil Kaczmarek <kamil@anyscale.com>
Signed-off-by: Kamil Kaczmarek <kaczmarek.poczta@gmail.com>
<!-- Thank you for your contribution! Please review
https://github.com/ray-project/ray/blob/master/CONTRIBUTING.rst before
opening a pull request. -->

## Why are these changes needed?

Drop support for bullet.

<!-- Please give a short summary of the change and the problem this
solves. -->



## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] I've run `scripts/format.sh` to lint the changes in this PR.
- [x] 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
   - [x] This PR is not tested :(

Signed-off-by: Kamil Kaczmarek <kamil@anyscale.com>
Signed-off-by: zhaoch23 <c233zhao@uwaterloo.ca>
Signed-off-by: zhilong <121425509+Bye-legumes@users.noreply.github.com>
Signed-off-by: zhilong <zhilong.chen@mail.mcgill.ca>
Co-authored-by: zhaoch23 <c233zhao@uwaterloo.ca>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Jiajun Yao <jeromeyjj@gmail.com>
…#56641)

Signed-off-by: irabbani <israbbani@gmail.com>
Co-authored-by: Dhyey Shah <dhyey2019@gmail.com>
## Why are these changes needed?
Fixing the build for my gcc devbox, was struggling to disambiguate
between map with string_view vs. map with string. Changed Record to
always take string_view. The string overload is only used in Cython so
just have a separate RecordForCython that's not part of the
MetricInterface. We can't use string_view in Cython because our Cython
version isn't new enough.

Also killing tag_defs.cc, it just had one line tag registrations that
could go in the headers. There were some tags that were unused so killed
them.
There were also some string constants that could just be put in the one
spot they were used so the files that use it don't need the dependency.

The biggest change is changing the record to take a vector of pairs
instead of an unordered map. We didn't use the map aspect of it, so a
vector is more efficient.

Record was also taking by const ref before and then trying to move, so
the move wasn't actually happening. Taking by value now so that it
actually moves.

---------

Signed-off-by: dayshah <dhyey2019@gmail.com>
)

Moved `ray/_private/serialization.py`  into `ray/_common`.
Moved `test_serialization.py` from file `ray/tests` into
`ray/_common/tests`.

ray-project#53478 

Signed-off-by: Vaishnavi Panchavati <vaishdho10@gmail.com>
…y-project#56626)

Broken in ray-project#56446. 

This should stop being possible once there's a single cgroups target
exported (as highlighted in ray-project#54703).

I've fixed the broken build and I've added a temporary test target that
builds the noop implementations as part of Linux CI so it gets caught in
premerge.

---------

Signed-off-by: irabbani <israbbani@gmail.com>
…uild app:app (ray-project#56609)

## Why are these changes needed?

Omit unnecessary newlines in the config generated by `serve build
app:app`

now

```shell
# This file was generated using the `serve build` command on Ray v2.49.1.

proxy_location: EveryNode

http_options:
  host: 0.0.0.0
  port: 8000

grpc_options:
  port: 9000
  grpc_servicer_functions: []

logging_config:
  encoding: TEXT
  log_level: INFO
  logs_dir: null
  enable_access_log: true
  additional_log_standard_attrs: []

applications:
- name: app1
  route_prefix: /
  import_path: app:app
  runtime_env: {}
  deployments:
  - name: UniformRequestRouterApp
    num_replicas: 10
    ray_actor_options:
      num_cpus: 0.0
    request_router_config:
      request_router_class: app.UniformRequestRouter
      request_router_kwargs: {}
      request_routing_stats_period_s: 10
      request_routing_stats_timeout_s: 30
```


## Related issue number

Closes ray-project#56594

## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] I've run `scripts/format.sh` to lint the changes in this PR.
- [x] 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.
- [x] 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
   - [x] Release tests
   - [ ] This PR is not tested :(

---------

Signed-off-by: daiping8 <dai.ping88@zte.com.cn>
Signed-off-by: zac <zac@anyscale.com>
Signed-off-by: Edward Oakes <ed.nmi.oakes@gmail.com>
Co-authored-by: Jiajun Yao <jeromeyjj@gmail.com>
Co-authored-by: Edward Oakes <ed.nmi.oakes@gmail.com>
…project#56500)

<!-- 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?

Adding support for projection pushdown into `Read` ops reading from
parquet tables.

Changes
---

 - Adding `ProjectionPushdown` optimization rule
- Abstracting `LogicalOperatorSupportsProjectionPushdown`, etc
interfaces to implement projection pushdown for various Read ops as well
as `Datasource`s
 - Added tests for projection push-down

## 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: Alexey Kudinkin <ak@anyscale.com>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
…roject#56660)

## Why are these changes needed?

This PR allows the ProxyActor to return true or false to signify health,
rather than requiring an exception to be raised to signify it's
unhealthy.

<!-- Please give a short summary of the change and the problem this
solves. -->

## 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: akyang-anyscale <alexyang@anyscale.com>
…because of `IndexError` in `test_utils.py` (ray-project#54343)

## Why are these changes needed?

In the CI I saw a fleaky test failing, but its error is not reported
correctly:

```python
[2025-07-04T00:01:57Z] Traceback (most recent call last):
[2025-07-04T00:01:57Z]   File "/root/.cache/bazel/_bazel_root/1df605deb6d24fc8068f6e25793ec703/execroot/com_github_ray_project_ray/bazel-out/k8-opt/bin/rllib/examples/connectors/multi_agent_observation_preprocessor.runfiles/com_github_ray_project_ray/rllib/examples/connectors/multi_agent_observation_preprocessor.py", line 137, in <module>
[2025-07-04T00:01:57Z]     run_rllib_example_script_experiment(base_config, args)
[2025-07-04T00:01:57Z]   File "/rayci/python/ray/rllib/utils/test_utils.py", line 1354, in run_rllib_example_script_experiment
[2025-07-04T00:01:57Z]     f"{[e.args[0].args[2] for e in results.errors]}"
[2025-07-04T00:01:57Z]   File "/rayci/python/ray/rllib/utils/test_utils.py", line 1354, in <listcomp>
[2025-07-04T00:01:57Z]     f"{[e.args[0].args[2] for e in results.errors]}"  # <---
[2025-07-04T00:01:57Z] IndexError: tuple index out of range  # <---
```

In the logs the actual error does not appear because of the `IndexError`
for ` f"{[e.args[0].args[2] for e in results.errors]}"`. I am not sure
why `e.args[0].args[2]` is used, a nested Exception perhaps? This PR
adds a guard to fallback to a simpler `repr(e)` in case the `IndexError`
would accur again. This allows to investigate why this `IndexError`
occures and raises the `RuntimeError` like expected.

## Related issue number

NA

## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] I've run `scripts/format.sh` to lint the changes in this PR.
- [x] 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
   - [x] This PR is not tested, but improves other tests :)

---------

Signed-off-by: Daraan <github.blurry@9ox.net>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Kamil Kaczmarek <kaczmarek.poczta@gmail.com>
<!-- 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?

Adds support for predicate expressions in Ray Data's Expression System.
Involves the following:
1. Support for unary operations (NOT, IS_NULL(), IN  and their inverses)
2. Add `PredicateExpr` to expression evaluator

## Related issue number

## Checks

- [x] I've signed off every commit(by using the -s flag, i.e., `git
commit -s`) in this PR.
- [x] 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
   - [x] Unit tests
   - [ ] Release tests
   - [ ] This PR is not tested :(

---------

Signed-off-by: Goutam V. <goutam@anyscale.com>
<!-- 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?

<!-- Please give a short summary of the change and the problem this
solves. -->
before: we updated metrics when we added an output, but the queue size
after the operator is done adding outputs.
after: we update every time we take an input. This should rise and fall
back to 0 naturally

<img width="741" height="279" alt="image"
src="https://github.com/user-attachments/assets/e1a48097-e1dd-4b7b-9ce2-a23ab65d590b"
/>

## 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: iamjustinhsu <jhsu@anyscale.com>
Signed-off-by: Avi Basnet <avigyabb@stanford.edu>
Signed-off-by: avigyabb <avigyabb@stanford.edu>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
Signed-off-by: avigyabb <98926738+avigyabb@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.