openanalytics / shinyproxy

ShinyProxy - Open Source Enterprise Deployment for Shiny and data science apps
https://www.shinyproxy.io
Apache License 2.0
523 stars 152 forks source link

503 error datatables #488

Closed kramerrs closed 4 months ago

kramerrs commented 5 months ago

I am receiving a 503 error when a datatable loads. The issue started when I migrated from 3.0.0 to 3.0.2. The issue is also in the most recent 3.1.0 , previously I had reverted to 3.0.0, but the most recent pre-initialized containers features is highly desirable.

I have tested things such as removing DT::datatable extensions. It is the same container something has happened in the proxy.

2024-05-07T17:53:49.571Z ERROR 1 --- [ XNIO-1 I/O-1] io.undertow.proxy : UT005028: Proxy request to /proxy_endpoint/4b959d53-0dca-44cb-a310-14f258c4aa34/session/d0d5484d52c22045faeca07478319fdf/dataobj/faselected failed java.io.IOException: UT001000: Connection closed at io.undertow.client.http.HttpClientConnection$ClientReadListener.handleEvent(HttpClientConnection.java:600) ~[undertow-core-2.3.10.Final.jar!/:2.3.10.Final] at io.undertow.client.http.HttpClientConnection$ClientReadListener.handleEvent(HttpClientConnection.java:535) ~[undertow-core-2.3.10.Final.jar!/:2.3.10.Final] at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92) ~[xnio-api-3.8.8.Final.jar!/:3.8.8.Final] at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66) ~[xnio-api-3.8.8.Final.jar!/:3.8.8.Final] at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89) ~[xnio-nio-3.8.8.Final.jar!/:3.8.8.Final] at org.xnio.nio.WorkerThread.run(WorkerThread.java:591) ~[xnio-nio-3.8.8.Final.jar!/:3.8.8.Final]

LEDfan commented 5 months ago

Hi, this is interesting, we do have test cases using datatables that work fine, so I expect this happens in a specific feature of datatables. Would it be possible to share an example app that does not work? Of course you can remove any sensitive parts. If you prefer you can also send it privately over e-mail (info -at- openanalytics -dot- eu).

kramerrs commented 5 months ago

Yes, I saw those other issues, so I didn't think I needed report before. We have a sophisticated installation, but I can try to set something up.

kramerrs commented 5 months ago

So I ran into a problem designing a reproducible example. It appears to be something about saml. EG, if I create a simple page that serves up a datatable. It is the saml authentication and saml section that when enabled cause the datatable ajax to fail.

LEDfan commented 5 months ago

Thank you for the additional testing! I'm able to reproduce the issue when using SAML, we will fix this in the coming days, stay tuned!

kramerrs commented 5 months ago

Thank you I'm eagerly awaiting a fix! Pre-initialized containers are so exciting.

LEDfan commented 5 months ago

Hi @kramerrs , I found a fix for the issue. Can you please try using the docker image openanalytics/shinyproxy-snapshot:3.1.0-20240514.164846 and let us know whether this fixes the issue?

kramerrs commented 5 months ago

Appears to have fixed the issue here.

Wow, that loads fast!

kramerrs commented 5 months ago

One user is still getting the 503 error on our test deployment of ShinyProxy 3.1.0 and they aren't getting this on ShinyProxy 3.0.2. Deleting cookies seemed to fix it though they were using the same browser environment for both. I suspect there is something in the SAML headers, as this user had a very long roles list. I am going to follow up and test to see if simple authentication might fix the issue, however I thought I would ask to see if anyone had any ideas. 503 is temporarily unavailable.

This is what the redacted logging looks like:

2024-05-20T15:19:09.117Z INFO 1 --- [ XNIO-1 I/O-7] e.o.c.util.ProxyMappingManager : [user=someuser proxyId=ec0cdd04-5115-48a8-a277-d5d50da4d55c specId=someapp] Proxy unreachable/crashed, stopping i t now, failed request: GET https://datatest.nibib.nih.gov/proxy_endpoint/ec0cdd04-5115-48a8-a277-d5d50da4d55c/dt-ext-scroller-1.13.4/js/dataTables.scroller.min.js was proxied to: http://8b7e0684750d:3838/dt-ext-scroller-1 .13.4/js/dataTables.scroller.min.js, status: 503

LEDfan commented 5 months ago

I think this might be the same issue as in #481 , could you test with using the docker image openanalytics/shinyproxy-snapshot:3.1.0-20240514.165349 ?

kramerrs commented 5 months ago

This appears to have fixed the issue for that remaining user. I have some other comments for the #481 issue. I'll leave there.

kramerrs commented 5 months ago

Also, is there a timeline for the official update release? I see you all are working on these issues associated with the major update.

LEDfan commented 5 months ago

Great that it's now fixed! There is no ETA yet, we still have a few things we want to fix before making a new release, but it should be there soon.

LEDfan commented 4 months ago

Hi, both fixes are now included in ShinyProxy 3.1.1, therefore I'm going to close this issue.