En la nueva versión de lanzamiento (2.2.0) de ShinyProxy, todas las aplicaciones que usan DT con el modo de procesamiento del servidor se romperán. El navegador se queja de errores de Ajax mientras que el registro de ShinyProxy dice que los métodos de solicitud 'Publicar' no son compatibles .
library(shiny)
ui <- fluidPage(DT::DTOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDT(iris, server = TRUE)
}
shinyApp(ui, server)
De hecho, configuré un ejemplo de docker-compose para esto, consulte https://github.com/shrektan/shinyproxy-docker-compose-example
¡Gracias! Podemos reproducir esto y estamos trabajando en ello.
@shrektan gracias por informar del problema.
Se ha cometido una corrección:
https://github.com/openanalytics/containerproxy/commit/6455abdaed031297baf600f5e71e2242b689d940
¿Puedes probar esta compilación de desarrollo y ver si soluciona el problema?
https://nexus.openanalytics.eu/nexus/content/repositories/snapshots/eu/openanalytics/shinyproxy/2.2.1-SNAPSHOT/shinyproxy-2.2.1-20190329.093240-2.jar
@fmichielssen Gracias por la solución rápida. Puedo confirmar que tanto DT como fileInput()
funcionan bien con la compilación de desarrollo.
¡Gracias por la confirmación, @shrektan! Publicado como parte de ShinyProxy 2.2.1
Acabo de hacer una nueva instalación con 2.2.1 y recibo el mismo error que @shrektan informó:
Luego, en shinyproxy.log, obtengo:
2019-03-31 21:27:33.548 ERROR 9925 --- [XNIO-2 I/O-3] io.undertow.proxy : UT005028: Proxy request to /proxy_endpoint/b77c8f8f-8dc9-45c3-a858-e12c7e33e159/session/cf6134effe616504495d1d75171f0546/dataobj/de_main_table failed
io.undertow.server.TruncatedResponseException: null
at io.undertow.client.http.HttpRequestConduit.truncateWrites(HttpRequestConduit.java:711) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.terminateWrites(AbstractFixedLengthStreamSinkConduit.java:256) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites(ConduitStreamSinkChannel.java:178) ~[xnio-api-3.3.8.Final.jar!/:3.3.8.Final]
at io.undertow.channels.DetachableStreamSinkChannel.shutdownWrites(DetachableStreamSinkChannel.java:79) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:754) ~[undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:646) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:561) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.client.http.HttpClientExchange.invokeReadReadyCallback(HttpClientExchange.java:212) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.client.http.HttpClientConnection.initiateRequest(HttpClientConnection.java:410) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.client.http.HttpClientConnection.sendRequest(HttpClientConnection.java:343) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:561) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:815) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:316) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:290) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyConnectionPool.connectionReady(ProxyConnectionPool.java:338) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.ProxyConnectionPool.connect(ProxyConnectionPool.java:525) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at io.undertow.server.handlers.proxy.LoadBalancingProxyClient.getConnection(LoadBalancingProxyClient.java:301) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at eu.openanalytics.containerproxy.util.ProxyMappingManager$1.getConnection(ProxyMappingManager.java:88) [containerproxy-0.8.1.jar!/:0.8.1]
at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.run(ProxyHandler.java:310) [undertow-core-1.4.22.Final.jar!/:1.4.22.Final]
at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:582) [xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]
at org.xnio.nio.WorkerThread.run(WorkerThread.java:466) [xnio-nio-3.3.8.Final.jar!/:3.3.8.Final]
Lo interesante es que esto afecta a otro paquete: shinyWidgets. Tengo un montón de entradas que se generan usando insertUI, y los valores en la lista desplegable resaltada a continuación se obtienen de una base de datos (dinámica). Cuando se ejecuta localmente, todo funciona muy bien (y obtengo los valores reales). Al implementar en shinyproxy, obtengo NA1, NA2, NA3 ... súper extraño.
Debo mencionar que las cosas estaban funcionando bien en 2.1.0. En caso de que esto marque la diferencia, estoy usando shinyproxy detrás de nginx, con un certificado LetsEncrypt.
@bogdanrau ¿Podría proporcionar una aplicación de ejemplo ficticia (similar a la que nos proporcionó
Hola @tverbeke, me preguntaba si ahora podríamos implementar 2.2.1, ¿está arreglado?
Hola @dylancis : el problema original definitivamente se solucionó como lo confirmaron nuestras pruebas y @shrektan. Para el problema informado por @bogdanrau , todavía no tenemos un ejemplo reproducible o (confirmación de otro usuario, todavía hay un problema).
@tverbeke , acabo de probar la aplicación de muestra que proporcionó @shrektan y recibo ese error. La única diferencia que puedo ver es que estoy usando .deb como servicio, en lugar de usar el archivo .jar. ¿Alguien está usando el archivo .deb?
funciona bien aquí con 2.2.1
.
funciona bien aquí con
2.2.1
.
¿Y eso es usar el instalador deb o el archivo jar? Creé una nueva máquina virtual desde cero usando el archivo .deb y todavía tenía los mismos problemas por cualquier motivo.
¿Qué es el archivo deb?
@shrektan : si miras la página de descarga de shinyproxy (https://www.shinyproxy.io/downloads/), puedes descargar un archivo independiente de la plataforma (.jar) o un archivo deb específico de Ubuntu que instalas con dpkg. Elegí eso frente al archivo independiente de la plataforma.
Recibo el mismo error como @bogdanrau.
Mi configuración: estoy usando shinyproxy 2.2.1 (.jar independiente de la plataforma) detrás de nginx.
He notado que este error ocurre según el método de autenticación elegido en ShinyProxy. Cuando utilizo el ejemplo de @shrektan (docker pull shrektan / rdocker4working) junto con nginx, ShinyProxy 2.2.1 y la autenticación: simple, todo funciona bien. Cuando cambio a la autenticación: keycloak, aparece el error. La autenticación de Keycloak en sí parece funcionar.
Puedo confirmar que también estoy usando keycloak con nginx.
También tengo este problema con la versión> 2.1.0 (la última vez que se sabe que funciona), incluso la 2.2.1 no funciona para mí.
Ejecuto un shinyproxy dockerizado que recupera el jar independiente de la plataforma detrás de un proxy inverso Traefik v1.7.12.
Estoy usando keycloak v6.0.1 para autenticación / autorización.
Tuve que volver a la versión 2.1 para poder ver las tablas de datos con ajax habilitado (servidor = TRUE) cuando está deshabilitado, funciona con versiones más nuevas.
¿Hay novedades o soluciones para ese error?
Ejecuto exactamente el mismo problema y puedo confirmar que el problema ocurre en combinación con la autenticación de keycloak .
Estoy usando shinyproxy-2.3.0.jar en un entorno acoplado en una máquina Ubuntu 18.04.2 LTS. Nginx se utiliza como proxy inverso en combinación con un certificado ssl letsencrypt.
Ejemplo-aplicación-brillante:
library(shiny)
library(DT)
ui <- fluidPage(DT::dataTableOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDataTable(data.frame(Col_1=c(1:10), Col_2=c(11:20)))
}
shinyApp(ui, server)
Intentar ejecutar el ejemplo superior con shinyproxy y keycloak-auth (por cierto, ejecutándose en el mismo servidor) conduce al mencionado error 503 Servicio no disponible AJAX. Turning server = FALSE resuelve ese error, pero está fuera de discusión para tablas grandes.
Exactamente la misma máquina (docker, shinyproxy, configuración de nginx) con auth simple o ldap en application.yml se está ejecutando sin ningún problema .
el mismo problema con billy34
en ShinyProxy 2.3.0, use DT :: renderDataTable todavía tiene el mismo error 503 de ajax
use keycloak v7.0.0 para autenticación / autorización
pero revertir a 2.1 funcionará bien
Aplicación de ejemplo
library(shiny)
ui <- fluidPage(DT::dataTableOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDataTable({
DT::datatable(iris, class = 'cell-border stripe')
})
}
Tengo el mismo TruncatedResponseException
mencionado por @bogdanrau con la carga de archivos en RStudio ejecutándose dentro de Shiny Proxy> 2.1 dockerizado (usando un método de autenticación simple). https://github.com/openanalytics/shinyproxy/issues/170
Solo agrego un 'yo también'. El problema es con el backend de autorización de Keycloak y no aparece de otra manera. Volver a 2.1 funciona como se esperaba.
Encontrando esto también con KeyCloak Auth y cualquier versión de ShinyProxy> 2.1.0
Encontré el mismo problema en nginx (ssl habilitado) y el servicio de autenticación de keycloak. Sin embargo, DT se muestra perfectamente sin keycloak.
¡Por favor ver adjunto!
Encontré el mismo problema en nginx (ssl habilitado) y el servicio de autenticación de keycloak. Sin embargo, DT se muestra perfectamente sin keycloak.
¡Por favor ver adjunto!
Jarra de ShinyProxy 2.3.0 de shinyproxy.io
Pudimos reproducirlo con Keycloak. Habrá una solución en la próxima versión.
Pudimos reproducirlo con Keycloak. Habrá una solución en la próxima versión.
¡Gracias por revertir!
Obteniendo el mismo error, sin ningún tipo de autenticación. Al realizar una solicitud POST de tipo de contenido: multipart / form-data. Alguna idea de cuál es la diferencia entre las dos versiones de que viene este error. Sugiera alguna solución en caso de que revertir no sea una opción. Por cierto, estoy ejecutando frasco detrás de shinyproxy
Gracias.
@tverbeke, ¿ podría enviar una instantánea de la rama <dev>
con este problema solucionado? quizás las primeras pruebas puedan descubrir algo más que pueda necesitar una solución antes de actualizar la rama <stable>
.
Gracias por adelantado.
@jaysnm, la solución está presente en la rama de desarrollo de containerproxy.
@tverbeke es desafortunado que el desarrollo de la rama de compilación de containerproxy haya fallado (ver adjunto). También he construido una rama de
Gracias.
@jaysnm Necesita compilar con Oracle Java por el momento. El constructor de la clase sun.security.krb5.KrbTgsReq es diferente entre Oracle Java y OpenJDK y lo sabemos.
Con la versión oficial 2.3.1 esto finalmente funciona bien para mí. ¿Es hora de cerrar este número 140?
Gracias por los comentarios, @ Dusan-Dingarac
Hola, tengo el mismo problema después de actualizar ShinyProxy 2.3.1 a 2.4.1, ¿podemos volver a abrir el error?
en el navegador:
DataTables warning: table id=DataTables_Table_0 - Ajax error. For more information about this error, please see http://datatables.net/tn/7
en shinyproxy
at io.undertow.server.handlers.proxy.ProxyConnectionPool.connect(ProxyConnectionPool.java:548) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.LoadBalancingProxyClient.getConnection(LoadBalancingProxyClient.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at eu.openanalytics.containerproxy.util.ProxyMappingManager$1.getConnection(ProxyMappingManager.java:88) ~[containerproxy-0.8.5.jar!/:0.8.5] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.run(ProxyHandler.java:310) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:612) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final] │
│ at org.xnio.nio.WorkerThread.run(WorkerThread.java:479) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final] │
│ 2020-10-23 15:33:30.211 DEBUG 1 --- [ XNIO-1 I/O-2] io.undertow.request.error-response : Setting error code 503 for exchange HttpServerExchange{ POST /system-recommendation-dashboard/pr │
│ oxy_endpoint/3913e3ea-8e4d-4c7a-9bf7-4418b3064b26/session/2baa425f53c271bc590b7d1a0c335a89/dataobj/tab_Cov_Linea_O} │
│ java.lang.RuntimeException: null │
│ at io.undertow.server.HttpServerExchange.setStatusCode(HttpServerExchange.java:1416) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler.handleFailure(ProxyHandler.java:668) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:769) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:646) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:561) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientExchange.invokeReadReadyCallback(HttpClientExchange.java:212) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientConnection.initiateRequest(HttpClientConnection.java:414) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientConnection.sendRequest(HttpClientConnection.java:347) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:561) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:821) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:290) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyConnectionPool.connectionReady(ProxyConnectionPool.java:353) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyConnectionPool.connect(ProxyConnectionPool.java:548) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.LoadBalancingProxyClient.getConnection(LoadBalancingProxyClient.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at eu.openanalytics.containerproxy.util.ProxyMappingManager$1.getConnection(ProxyMappingManager.java:88) ~[containerproxy-0.8.5.jar!/:0.8.5] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.run(ProxyHandler.java:310) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:612) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final] │
│ at org.xnio.nio.WorkerThread.run(WorkerThread.java:479) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final]
Tengo el mismo problema con DT sin ShinyProxy con el equilibrio de carga usando traefik como proxy inverso. ¿Quizás vinculado a DT y al equilibrio de carga?
Necesito investigar de mi lado
¿Has visto este problema https://github.com/rstudio/DT/issues/849 ?
También estoy usando traefik como balanceador de carga pero volví a 2.3.1 y funciona bien, con 2.4.0 y 2.4.1 da ese error.
Hola @giordyb
Acabo de probar el código de ejemplo en la primera publicación de este problema con ShinyProxy 2.4.1 y todavía me funciona.
¿Puede compartir la siguiente información?
Necesito al menos las dos primeras piezas, de lo contrario no podré reproducir el problema.
Gracias
Solo agregue mis dos centavos aquí. Para garantizar que DT funcione detrás de un balanceador de carga (Traefik), recientemente creé un balanceador de carga DT de repositorio simple basado en el enjambre de Docker, con configuraciones detalladas ... Creo que con un poco de esfuerzo, puede convertirlo en un reproductor reproducible ejemplo para ShinyProxy sobre este problema ...
@giordyb Resolví mi problema con traefik y balanceo de carga. Sigo usando traefik 1.7 (1.7.26) y todavía hay un problema con la configuración de adherencia. Estaba usando la etiqueta "traefik.backend.loadbalancer.stickiness" como se documenta, pero sin éxito. El uso de la etiqueta obsoleta "traefik.backend.loadbalancer.sticky = true" está funcionando. No sé si es una pista para este problema, pero quién sabe.
@ billy34 gracias, estoy ejecutando traefik 2.2, intenté habilitar la sesión pegajosa pero no hizo ninguna diferencia. Publicaré mi código y la configuración traefik en breve
@LEDfan Estoy ejecutando traefik en kubernetes (en un clúster de varios nodos), por lo que es un poco complicado replicar nuestro entorno con un docker-compose.
Pude crear un entorno más pequeño con un solo nodo de kubernetes debajo de la ventana acoplable (ventana acoplable para mac) y todavía aparecen errores.
aquí está el código de la aplicación (es solo una muestra, pero también contiene errores):
_editar: vea la siguiente publicación para el código_
Probé esta versión de esta aplicación con esta configuración de traefik bajo shinyproxy 2.3.0 y funciona, si intento lo mismo en 2.4.1 obtengo el error
Otra cosa que intenté es omitir traefik mediante el reenvío de puertos directamente al contenedor shinyproxy, incluso al hacer esto aparece el error, por lo que realmente dudo que sea un problema traefik.
@LEDfan
Hice algunas pruebas más, parece que traefik no tiene nada que ver con eso.
Creé un repositorio que replica mi entorno (https://github.com/giordyb/test_shinyproxy.git)
en la ventana acoplable para mac con kubernetes, creé 2 implementaciones de proxy brillante (2.3.1 y 2.4.1) que sirven a la misma aplicación de contenedor de R. brillante.
No hay ningún traefik involucrado, se accede a los pods proxy brillantes a través de un reenvío de puertos kube-proxy.
en 2.3.1 la solicitud a las obras de la tabla de datos
en 2.4.1 falla la misma solicitud
y obtengo esto en el registro del contenedor shinyproxy
2020-10-26 15:17:46.359 ERROR 1 --- [ XNIO-1 I/O-2] io.undertow.proxy : UT005028: Proxy request to /proxy_endpoint/884afa30-73a0-444f-b04f-3ae85b6de6bd/session/aacc55466aefc00eabd04b31f9891242/dataobj/tab_Cov_Linea_O failed │
│ io.undertow.server.TruncatedResponseException: null │
│ at io.undertow.client.http.HttpRequestConduit.truncateWrites(HttpRequestConduit.java:711) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.conduits.AbstractFixedLengthStreamSinkConduit.terminateWrites(AbstractFixedLengthStreamSinkConduit.java:256) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at org.xnio.conduits.ConduitStreamSinkChannel.shutdownWrites(ConduitStreamSinkChannel.java:178) ~[xnio-api-3.8.0.Final.jar!/:3.8.0.Final] │
│ at io.undertow.channels.DetachableStreamSinkChannel.shutdownWrites(DetachableStreamSinkChannel.java:79) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:754) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:646) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:561) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientExchange.invokeReadReadyCallback(HttpClientExchange.java:212) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientConnection.initiateRequest(HttpClientConnection.java:414) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientConnection.sendRequest(HttpClientConnection.java:347) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:561) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:821) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:290) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyConnectionPool.connectionReady(ProxyConnectionPool.java:353) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyConnectionPool.connect(ProxyConnectionPool.java:548) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.LoadBalancingProxyClient.getConnection(LoadBalancingProxyClient.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at eu.openanalytics.containerproxy.util.ProxyMappingManager$1.getConnection(ProxyMappingManager.java:88) ~[containerproxy-0.8.5.jar!/:0.8.5] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.run(ProxyHandler.java:310) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:612) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final] │
│ at org.xnio.nio.WorkerThread.run(WorkerThread.java:479) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final] │
│ 2020-10-26 15:17:46.361 DEBUG 1 --- [ XNIO-1 I/O-2] io.undertow.request.error-response : Setting error code 503 for exchange HttpServerExchange{ POST /proxy_endpoint/884afa30-73a0-444f-b04f-3ae85b6de6bd/session/aacc55466aefc00eabd04b31f9891242 │
│ java.lang.RuntimeException: null │
│ at io.undertow.server.HttpServerExchange.setStatusCode(HttpServerExchange.java:1416) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler.handleFailure(ProxyHandler.java:668) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:769) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:646) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:561) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientExchange.invokeReadReadyCallback(HttpClientExchange.java:212) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientConnection.initiateRequest(HttpClientConnection.java:414) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.client.http.HttpClientConnection.sendRequest(HttpClientConnection.java:347) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:561) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:821) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:290) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyConnectionPool.connectionReady(ProxyConnectionPool.java:353) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.ProxyConnectionPool.connect(ProxyConnectionPool.java:548) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at io.undertow.server.handlers.proxy.LoadBalancingProxyClient.getConnection(LoadBalancingProxyClient.java:316) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at eu.openanalytics.containerproxy.util.ProxyMappingManager$1.getConnection(ProxyMappingManager.java:88) ~[containerproxy-0.8.5.jar!/:0.8.5] │
│ at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.run(ProxyHandler.java:310) ~[undertow-core-2.1.4.Final.jar!/:2.1.4.Final] │
│ at org.xnio.nio.WorkerThread.safeRun(WorkerThread.java:612) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final] │
│ at org.xnio.nio.WorkerThread.run(WorkerThread.java:479) ~[xnio-nio-3.8.0.Final.jar!/:3.8.0.Final]
¿Hay algo más que pueda hacer por mi parte para solucionar el problema aún más?
Hola @giordyb
Gracias por su implementación e informe de ejemplo. Investigué el problema hoy y es un tema bastante extraño.
El problema se debe a que el registro de depuración está habilitado. Hay una clase DispatcherServlet
que registrará las partes de las solicitudes enviadas a través de ShinyProxy. Sin embargo, esto causa problemas con algunas solicitudes de proxy, porque parte de esas solicitudes solo se pueden leer una vez. Por lo tanto, la aplicación Shiny recibió una solicitud no válida.
La solución es deshabilitar el registro de depuración para la clase org.springframework.web.servlet.DispatcherServlet
la siguiente manera:
logging:
level:
root: DEBUG
org:
springframework:
web:
servlet:
DispatcherServlet: INFO
Este será el valor predeterminado en la próxima versión de ShinyProxy, por lo que esta solución ya no es necesaria.
Hola @LEDfan ,
gracias por investigar esto tan rápidamente. Agregué la configuración de registro como sugirió y ahora todo funciona como se esperaba, así que soy un campista feliz.
¡muchas gracias por su ayuda!
Tengo el mismo problema con kubernetes detrás de NGINX y Azure Active Directory. Las tablas de datos se muestran correctamente con 2.3.1 pero no con 2.4.1. Probé compilaciones con JDK8 y con JDK11.
Hemos eliminado todas las configuraciones de registro de application.yml
y hemos configurado NGINX para ejecutar sesiones 'pegajosas', pero hasta ahora no hemos tenido suerte.
Hemos publicado una versión simplificada de nuestros registros de pod de application.yml
y shinyproxy en la página de soporte de la comunidad. https://support.openanalytics.eu/t/datatables-ajax-error-with-shinyproxy-v-2-4-1/1763 .
Hola @smlehman , gracias por tu información adicional.
¿Podría proporcionar una aplicación Shiny de ejemplo (Dockerfile y fuentes R) usando DataTables?
Tengo una aplicación, pero no da ningún problema en la configuración de Kubernetes (usando nginx también). ¡Gracias!
Hola @LEDfan
Cosa segura. Para darle una imagen completa, he creado un pequeño repositorio con todos los archivos básicos que estamos usando. También incluí el archivo README en el que estoy trabajando para ayudar a las personas interesadas en usar la aplicación, ya que podría proporcionar contexto adicional sobre nuestra configuración.
https://github.com/smlehman/shinyproxy-debugDT
Avíseme si hay algo más que pueda ayudar con la resolución de problemas.
Comentario más útil
¡Gracias! Podemos reproducir esto y estamos trabajando en ello.