Skip to content

Netty channel hangs after sending a payload of size > 16 MB #742

@xiazuojie

Description

@xiazuojie

The max allowed size of a frame is 16 MB (according to this). If a payload is larger than 16 MB, encoding it to a frame will fail with an exception "Length is larger than 24 bits".

However, this exception is not properly handled by MonoSendMany. A single such exception (encoding happens inside applying MapFuseableSubscriber#mapper) will terminate the subscription. No payloads will be sent to netty channel after (due to subscription terminated).

In short, a single payload of size >= 16 MB will make the channel hang forever. And worse, there is no error log at all when this happens.

According to spec, large payloads should be fragmented to more frames. However, this feature is currently not implemented transparently.

Metadata

Metadata

Assignees

Labels

bugsupersededIssue is superseded by another

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions