Skip to content

Prevent overflow with unbounded Reverb rate limits - #379

Open
sylvesterkaczmarek wants to merge 1 commit into
google-deepmind:masterfrom
sylvesterkaczmarek:fix/286-handle-unbounded-reverb-rate-limits-20261010
Open

sylvesterkaczmarek wants to merge 1 commit into
google-deepmind:masterfrom
sylvesterkaczmarek:fix/286-handle-unbounded-reverb-rate-limits-20261010

Conversation

@sylvesterkaczmarek

Copy link
Copy Markdown

Fixes #286.

Changes

  • Avoid converting an infinite or NaN insert-sample window to an integer in _disable_insert_blocking.
  • Preserve the existing midpoint behavior for bounded rate limiters.
  • For an unbounded window, use the table's min_size_to_sample (at least one) when checking if the learner has enough replay items.
  • Add six parameterized regression cases for bounded, empty, infinite, NaN, and overflowed balance windows, with Reverb objects mocked.

Validation

  • A local isolated harness executed the exact updated function from source with fake Reverb objects across 8 scenarios, all passing. Full Acme integration tests were not run because the Reverb/TensorFlow runtime was unavailable locally.
  • python -m compileall on both changed files: passed.
  • ruff check --select E4,E7,E9,F on both changed files: passed.
  • git diff --check: passed.

The upstream CI and maintainers still need to validate the new tests in the complete runtime.

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.

OverflowError in _disable_insert_blocking when using samples_per_insert=None

1 participant