fix: ExponentialBackoff execute() bypasses maxElapsed timeout

DE
5mo ago
+4-0

Fixes issue #3726.

The execute() method tracked elapsedMs but never checked it against maxElapsed, allowing the retry loop to continue indefinitely regardless of the configured time limit. Added check after each retry attempt.


Summary by cubic

Fixes ExponentialBackoff.execute() ignoring maxElapsed, which could let retries run past the configured time limit. Now the loop checks elapsed time after each attempt and stops when maxElapsed is exceeded.

  • Bug Fixes
    • Added an elapsed time check (elapsedMs > this.#maxElapsed * 1000) after each retry, preventing overlong or infinite retries.