3.x: Change Flowable.groupBy to signal MBE instead of possibly hanging by akarnokd · Pull Request #6740 · ReactiveX/RxJava (original) (raw)

This PR changes the backpressure behavior of Flowable.groupBy to signal MissingBackpressureException instead of silently hanging if the produced groups are not ready to be accepted by the downstream.

This can happen if one flatMaps a groupBy but there are more groups produced than the concurrency level of flatMap. Since replenishment is tied to item consumption from the groups, not consuming them can result in none of the groups receiving any further items and the whole operator hangs.

The following changes have been applied:

Fixes #6641