-
-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[🐛 Bug]: WebSocket incorrectly assumes final frame in multi-frame text send #11408
Comments
@EndPositive, thank you for creating this issue. We will troubleshoot it as soon as we can. Info for maintainersTriage this issue by using labels.
If information is missing, add a helpful comment and then
If the issue is a question, add the
If the issue is valid but there is no time to troubleshoot it, consider adding the
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
add the applicable
After troubleshooting the issue, please add the Thank you! |
Do you have a test that can reproduce the issue so we can fix it? |
Here's a minimal example: https://github.com/EndPositive/selenium-bug |
Workaround for me is to increase the frame size: |
Thank you for sharing the details. I think I have seen this issue once when large payloads were shared during a DevTools session. However, I would like to use an example that produces the error consistently. I appreciate the code shared but I am not fluent in go. I understand what the code is doing roughly but can you help me understand it better so I can translate it to Java code? It is easier to debug and fix that way. I would like to understand what the code is doing and at what point do you see the error. Any particular CDP APIs that trigger this error? |
Closing as we did not get more information. |
Issue seems to persists in selenium-hub > 4.5.0. |
What happened?
Since 4.5.2 (i.e. JDK11 client), we've been experiencing an issue with the WebSocket. In this case, large messages sent over the WebSocket proxy (i.e. Selenium Hub + Selenium Node configuration), the receiver incorrectly assumes that the received frame is final. This results in a JSON decoding error in the string builder, which in turn results in the socket closing.
Notably, in the logs of the Chrome Node, there is first a "Frame is not final" message, but then we see that the WebSocket assumes that it was actually a final part:
Duhh, it's not possible to decode the JSON when you're missing the rest of the message..
I'm not at all fluent with Java, so not able to test further unfortunately.
How can we reproduce the issue?
Relevant log output
Operating System
Docker
Selenium version
4.7.0
What are the browser(s) and version(s) where you see this issue?
Chrome 108.0
What are the browser driver(s) and version(s) where you see this issue?
Remote CDP
Are you using Selenium Grid?
4.7.1
The text was updated successfully, but these errors were encountered: