Account for SignalOffloader methods throwing when used from operators
- Dominant language
- Java
- Stars
- 1k
- Forks
- 229
- Avg merge
- 23h 23m
- Merged PRs (30d)
- 16
Description
[1] For methods that account for `EnqueueForOffloadingFailed` they should also be accounting for more general exceptions that maybe thrown. For example an exception is thrown if the offloader has already be terminated.
[2] For methods that don't account for `EnqueueForOffloadingFailed` we need to analyze the callers of the offload methods and make sure they propagate exceptions accordingly. For example in the case of [ResumeCompletable](
https://github.com/servicetalk/servicetalk/blob/master/servicetalk-concurrent-api/src/main/java/io/servicetalk/concurrent/api/ResumeCompletable.java#L99) we invoke this method from `onError` which means we likely won't propagate the exception in an orderly fashion if this method throws.
[1] https://github.com/servicetalk/servicetalk/pull/192#discussion_r238044501
[2] https://github.com/servicetalk/servicetalk/pull/192#discussion_r238044598
Contributor guide
Research direction
Review the SignalOffloader methods and the linked pull request discussions first, then trace their callers, including ResumeCompletable.java around onError. Identify which methods handle EnqueueForOffloadingFailed and which callers must propagate other exceptions. Done means terminated-offloader failures are accounted for and exceptions from operator callbacks are propagated orderly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend-api-design
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100