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

[Data] Remove ineffective retry code in plan_read_op #47456

Merged
merged 2 commits into from
Sep 7, 2024
Merged

Conversation

bveeramani
Copy link
Member

Why are these changes needed?

Currently, Ray Data calls read tasks with retries. The intended purpose is to retry transient errors while reading data.

yield from call_with_retry(
f=read_task,
description=f"read file {read_fn_name}",
match=READ_FILE_RETRY_ON_ERRORS,
max_attempts=READ_FILE_MAX_ATTEMPTS,
max_backoff_s=READ_FILE_RETRY_MAX_BACKOFF_SECONDS,
)

However, the code doesn't achieve the intended result because read tasks return generator objects, and Python will never raise runtime errors while returning a generator (Python might raise runtime errors when the programs iterates over the returned generator).

def __call__(self) -> Iterable[Block]:
result = self._read_fn()
if not hasattr(result, "__iter__"):
DeprecationWarning(
"Read function must return Iterable[Block], got {}. "
"Probably you need to return `[block]` instead of "
"`block`.".format(result)
)
yield from result

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

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
@bveeramani bveeramani enabled auto-merge (squash) September 7, 2024 06:05
@github-actions github-actions bot added the go add ONLY when ready to merge, run all tests label Sep 7, 2024
@bveeramani bveeramani merged commit 542f51a into master Sep 7, 2024
7 checks passed
@bveeramani bveeramani deleted the plan-read-op branch September 7, 2024 06:55
ujjawal-khare pushed a commit to ujjawal-khare-27/ray that referenced this pull request Oct 15, 2024
…7456)

Currently, Ray Data calls read tasks with retries. The intended purpose
is to retry transient errors while reading data.

https://github.com/ray-project/ray/blob/eda6d092973831523693be15535872ed8ea14fdd/python/ray/data/_internal/planner/plan_read_op.py#L103-L109

However, the code doesn't achieve the intended result because read tasks
return generator objects, and Python will never raise runtime errors
while returning a generator (Python might raise runtime errors when the
programs iterates over the returned generator).

---------

Signed-off-by: Balaji Veeramani <bveeramani@berkeley.edu>
Signed-off-by: ujjawal-khare <ujjawal.khare@dream11.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