"output" served by Shiny Server does not display on laptop


#1

We have deployed Shiny Server open source version 1.5.9.923 on a RHEL 7.5. To verify that the installation happened properly, we tested the sample apps included with the Shiny Server installation and they worked fine on all laptops but one. For example, the "hello" sample app displays a histogram and responds to slider input in the left navigation bar, as shown below:

This works on all but one laptop. On that laptop, the slider input displays but the histogram doesn't, as shown in the screen below.

Notice the blank space on the right.

This behaviour is exhibited for other apps also on this same laptop: any UI element served using the "output$..." does not display. All the laptops are running Windows 8.1 Pro. The only possible difference is that the errant laptop was used for the local testing of our own shiny app ( launched from RStudio).

We have checked the javascript console in chrome. No errors are displayed there; viewing the source shows the UI elements being served.

Has anyone else faced this problem? What could be the issue here?
Thanks


#2

Do you have a web proxy configured on the Windows machine that is having problems?

See:


#3

Thanks for your response, Winston. The app is being accessed on the intranet, so I guess the proxy server should not be in the picture. That said, there is a proxy server configured on the laptop (the same proxy server is configured on all laptops) and it seems to working fine, since internet access is not impacted.

We did some more checks using the javascript console - I have attached the image below. The html does have the div element for the histogram and when we hover over the div element, the corresponding portion of the screen does get shaded. Modifying the width % or the height changes the dimensions of the shaded area. Would that indicate a conflict with some other software installed?

BTW, the same issue crops up when using Firefox on the errant laptop.


#4

It sounds like the output value simply isn't being received by the browser.

One thing you might want to try is to put this at the top of your app, and then check what shows up in your logs:

options(shiny.trace = TRUE)

It will record all the messages sent between the R process and the browser.

If you do it from the R console in an interactive session, you can see what the messages should look like. For example:

> runExample('01_hello', display.mode = "normal")

Listening on http://127.0.0.1:4044
SEND {"config":{"workerId":"","sessionId":"bbfb8c9d6a57acb188197f5f9e296fa9","user":null}}
RECV {"method":"init","data":{"bins":30,".clientdata_output_distPlot_width":577,".clientdata_output_distPlot_height":400,".clientdata_output_distPlot_hidden":false,".clientdata_pixelratio":2,".clientdata_url_protocol":"http:",".clientdata_url_hostname":"127.0.0.1",".clientdata_url_port":"4044",".clientdata_url_pathname":"/",".clientdata_url_search":"",".clientdata_url_hash_initial":"",".clientdata_url_hash":"",".clientdata_singletons":"",".clientdata_allowDataUriScheme":true}}
SEND {"busy":"busy"}
SEND {"recalculating":{"name":"distPlot","status":"recalculating"}}
SEND {"recalculating":{"name":"distPlot","status":"recalculated"}}
SEND {"busy":"idle"}
SEND {"errors":[],"values":{"distPlot":{"src":"data:image/png;[base64 data]","width":577,"height":400,"coordmap":{"panels":[{"domain":{"left":40.88,"right":98.12,"bottom":-1.08,"top":28.08},"range":{"left":118.08,"right":1093.52,"bottom":652.12,"top":117.08},"log":{"x":null,"y":null},"mapping":{}}],"dims":{"width":1154,"height":800}}}},"inputMessages":[]}

You can also use your browser's network logging to see the messages that are sent. For example, in Chrome, here's what it looks like when I load the app:

If you click on the xhr_send, you can see the information sent from the browser to the R process. For example:

And if you have the data:image/png... and click on it, then click on Preview tab, you'll see the image:

Hopefully this will help diagnose the problem.