Skip to content

Backpressure sensitivity of cache() in Hystrix #833

Closed
@akarnokd

Description

@akarnokd

I've recently implemented backpressure in RxJava's cache() operator which unfortunately failed in Netfix' canary environment: threads got accumulated over time probably due to hangs in the downstream. I've also run Hystrix' unit test with 1.0.13RC and everything passed.

I've looked at the AbstractCommand but it looks complicated and I don't really see what is subscribing to the cached Observable that could hang. The addition of backpressure causes the operator to not send any values unless requested; if there is a downstream operator that forgets to request, it will hang (previously, it just got the next value). The second change is that cache replays its buffer live instead of accumulating a synchronous source first, causing changes in timing of the value delivery.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions