fix: ExponentialBackoff execute() bypasses maxElapsed timeout
DE
5mo ago+4+4+0123456789-0-0-0123456789
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.
- Added an elapsed time check (