Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FrameLogger doesn't show the "Data" in KEEPALIVE frames #1114

Closed
siddharthaDevineni opened this issue Nov 25, 2024 · 2 comments · Fixed by #1119
Closed

FrameLogger doesn't show the "Data" in KEEPALIVE frames #1114

siddharthaDevineni opened this issue Nov 25, 2024 · 2 comments · Fixed by #1119
Labels
bug superseded Issue is superseded by another

Comments

@siddharthaDevineni
Copy link

siddharthaDevineni commented Nov 25, 2024

Summary

When a client (e.g., an angular client) sends a KeepAlive Frame with Data attached (e.g., clientId) to the RSocket spring-boot server, the server receives it for sure because the "receiving" frame length is more than 14 bytes - in my case, it is 69 bytes. However, the rsocket FrameLogger does not show the received data in the "Data" field; it is always empty. So, I implemented a CustomFrameLogger which shows the Data field with the received data from the client as expected. Is there any other way to show the data in the Data field?

Expected Behavior

When a client sends a KEEPALIVE frame to the server with Data attached to it, the rsocket FrameLogger is expected to show the received Data from the client as shown in the below screenshot:
Screenshot from 2024-11-25 10-39-14

Actual Behavior

Instead, the Data field that is showing is always empty even though the frame's total length is 69 bytes, which is clearly shown in the field Length of FrameLogger (the length of the attached Data that I sent from the client is 54 bytes). That means, the rsocket server apparently receives the data but somehow it is not able to show it in the KEEPALIVE FrameLogger as shown in the below screenshot:
Screenshot from 2024-11-25 10-17-54

Steps to Reproduce

Attach some Data in Buffer to a KeepAlive Frame and send it via the send(Frame) method of a duplex connection from the client.

Possible Solution

Implementation of a CustomFrameLogger in Java and using it to show the received data in the KEEPALIVE frames.

Environment

  • RSocket version(s) used: rsocket-core: 1.1.3, spring-boot-starter-rsocket: 3.3.4, spring-security-rsocket:6.3.3
  • Other relevant libraries versions - rsocket-transport-netty: 1.1.3, netty-core: 1.1.22, reactor-core: 3.6.10
  • Platform (eg. JVM version (java -version): java: openjdk 21.0.5, OpenJDK Runtime Environment (build 21.0.5+11-Ubuntu-1ubuntu124.04)
@OlegDokuka OlegDokuka added this to the 1.1.5 milestone Jan 27, 2025
@rstoyanchev
Copy link
Contributor

The spec does allow KEEPALIVE frames to have data, but FrameUtils doesn't try to show it.

@rstoyanchev rstoyanchev changed the title FrameLogger doesn't show the received "Data" from the client FrameLogger doesn't show the "Data" in KEEPALIVE frames Jan 31, 2025
rstoyanchev added a commit to rstoyanchev/rsocket-java that referenced this issue Jan 31, 2025
@rstoyanchev rstoyanchev linked a pull request Jan 31, 2025 that will close this issue
@rstoyanchev
Copy link
Contributor

Superseded by #1119.

@rstoyanchev rstoyanchev closed this as not planned Won't fix, can't repro, duplicate, stale Jan 31, 2025
@rstoyanchev rstoyanchev removed this from the 1.1.5 milestone Jan 31, 2025
@rstoyanchev rstoyanchev added the superseded Issue is superseded by another label Jan 31, 2025
rstoyanchev added a commit that referenced this issue Jan 31, 2025
Fixes gh-1114

Signed-off-by: rstoyanchev <[email protected]>
OlegDokuka pushed a commit that referenced this issue Jan 31, 2025
Fixes gh-1114

Signed-off-by: rstoyanchev <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug superseded Issue is superseded by another
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants