Shiny app freezes (chrome-specific)


#1

The app runs well locally, or with shiny server on firefox or safari but does not on chrome (even on older versions of chrome).
The log files /var/log/shiny-server.log (even with preserve_logs true;) do not show any error.
It freezes and then "Disconnected from the server. Reload". This happens each single time.
If I look at the task manager in chrome, it looks like the CPU usage goes over 100% and might create the problem.
Only after it freezes for a while I get this error from the chrome console when being disconnected to server:
[INF]: Connection closed. Info: {"type":"close","code":3000,"reason":"No response from heartbeat","wasClean":true}
I've tried adding all those parameters (separately or in combination) to to config file and it does not solve my problem. At best, it make chrome freeze but not disconnect from the server.
app_init_timeout 1800;
app_idle_timeout 1800;
http_keepalive_timeout 1800;
sockjs_heartbeat_delay 500;
disable_websockets off;
It does not freeze while some R processes are running, only SockJSAdapter.R is running:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
145496 shiny 20 0 1292932 853836 18592 R 101.3 0.9 1:42.27 /usr/lib/R/bin/exec/R --no-save --slave -f /opt/shiny-server/R/SockJSAdapter.R
145493 shiny 20 0 64864 6380 5544 S 0.0 0.0 0:00.00 /lib/systemd/systemd --user
145494 shiny 20 0 84700 1744 8 S 0.0 0.0 0:00.00 (sd-pam)

Any ideas how do I get my app to run?


#2

If this is a Shiny Server Pro installation, please contact support@rstudio.com.

Otherwise, could it perhaps be a misbehaving HTML widget? Can you remove any large widgets like data tables or maps, one at a time, and see if one of them is causing it? And if so, please let us know so we can investigate further.


#3

Thanks for your suggestion. We have tried removing all HTML widgets from the code (e.g. data tables) and in general most of the shiny visualisation code and we could not narrow it down to one. The only thing that makes the app run is to remove a part of pure R processing of our data (reading a table and filling up a list) which is essential to our app... The table in our case has about 30,000 rows and is processed in less than a minute on one core. Even reducing the size of this table does not help. I don't understand how a purely R-processing part can make the app crash and only on chrome...