Skip to content

Missing onComplete in requestStream and requestChannel with fragmentation #641

@lksvenoy-r7

Description

@lksvenoy-r7

When using fragmentation, the onComplete signal is sometimes missing with requestStream and requestChannel. This has been observed using many different fragmentation values (from 64 and up), and the behaviour is different locally than it is when using it over internet.

Expected Behaviour: When fragmentation is enabled, granted there are no errors, the entire payload is received by the client and the server finished by sending the COMPLETE frame.

Actual Behaviour: When fragmentation is enabled, when communicating over the internet, the socket is inconsistent, sometimes producing all payloads and the completion signal, and sometimes the payload amount varies, and no completion signal is issued.

Steps to Reproduce

  1. Create an rsocket server using the websocket transport protocol on an external server
  2. Create an rsocket client using the websocket transport protocol.
  3. Enable fragmentation on both server and client
  4. Send a big item and observe the onCompletion signal never arriving

Additional Information
Rsocket Version: 0.12.2-RC2
Infrastructure (Amazon): Rsocket Client -> Kong ALB -> Kong -> Service ALB -> Service

The behaviour works as expected when testing locally, but not over the internet. The load balancers have been tested and are not the issue.

Workaround
The current workaround we are using is to disable fragmentation, which resolves the issue.

If you require additional information, please let me know.

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