He-Pin opened a new pull request, #2727: URL: https://github.com/apache/pekko/pull/2727
## Motivation When `subscriber-timeout` fires in `FanoutProcessorImpl`, users see a generic `AbruptTerminationException` with no indication that the root cause is a subscription timeout. This makes debugging difficult because the error message gives no actionable information. The `CancelTermination` handler was calling `primaryInputs.cancel()` + `context.stop(self)` directly, which triggers the generic `AbruptStageTerminationException` in downstream subscribers. ## Modification - Changed `CancelTermination` handler in `FanoutProcessorImpl` to call `fail(new SubscriptionTimeoutException(...))` instead of `primaryInputs.cancel(); context.stop(self)` - `fail()` already handles the full lifecycle: cancel upstream → error downstream → stop actor - Added a warning log before failing, making the timeout visible in logs - Added regression test in `FanoutProcessorSpec` that verifies downstream subscribers receive `SubscriptionTimeoutException` with an informative message ## Result Downstream subscribers now receive `SubscriptionTimeoutException` with a clear message like: ``` Publisher was not attached to upstream within deadline (300 milliseconds) ``` instead of the generic `AbruptStageTerminationException`. ## References - Fixes https://github.com/apache/pekko/issues/2645 -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
