rstudio / rstudio/shiny-server
RobustSockJS connectivity issues caused by high client execution latency
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 759
- Forks
- 290
- Avg merge
- 20m
- Merged PRs (30d)
- 4
Description
Using the attached demo app:
Load it into SSOS or SSP, with reconnect on;. Use Ctrl+Alt+Shift+A in the browser to turn off all transports except xhr-polling, then reload.
Causing the app to hang for 10 seconds results in "RobustSockJS collision" messages. Hanging for 48 seconds results in "Discard position id too big" messages, and disconnection.
This demonstrates that SockJS, and by extension we, are not robust to the client's main thread being blocked for many seconds at a time. This in and of itself might not be that big of a problem, since we need to give up on the client at some point; but it's a problem right now because it's not at all clear to the app author or admin what they're doing wrong.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the attached client-hang.zip demo and reproduce the issue in SSOS or SSP with “reconnect on;”, xhr-polling enabled, and the client main thread blocked for 10 and 48 seconds. Read the resulting “RobustSockJS collision” and “Discard position id too big” behavior. Done should include a defined, understandable outcome for app authors and administrators when client execution latency causes disconnection.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100