apple / apple/servicetalk

Account for SignalOffloader methods throwing when used from operators

Open
#199 0 comments 1 reaction 0 assignees View on GitHub
bug
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.