Fix external cancels propagation in rxjava2 and rxjava3 adapters#4427
Open
teqwve wants to merge 1 commit intosquare:trunkfrom
Open
Fix external cancels propagation in rxjava2 and rxjava3 adapters#4427teqwve wants to merge 1 commit intosquare:trunkfrom
teqwve wants to merge 1 commit intosquare:trunkfrom
Conversation
If OkHttp call is cancelled (e.g. because of a timeout) then error is not passed to downstream resulting in a stuck rxjava invocation. Fix it by using `disposed` instead of reusing OkHttp call cancelled state. Separate state was added in 3f111b7, for the same reason but it was not used in `CallEnqueueObservable` `onFailure` while it should be (just like it was used in try-catch in `CallExecuteObservable`).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi! It looks like there is a small bug in
CallEnqueueObservable- external cancels (like timeouts) are not getting propagated to rxjava making calls stuck. It looks like when a separate "disposed" state was introduced 3f111b7 a one place inCallEnqueueObservable.onFailurewas missed (while it was used in analogous place incatchinsideCallExecuteObservable). This PR should fix the issue.I tested it manually with rxjava3 and added simple tests that fail without the fix. This should resolve #3524.
CHANGELOG.md's "Unreleased" section has been updated, if applicable.