Shinyproxy: [Отчет об ошибке] Ошибка AJAX в новом выпуске ShinyProxy (версия 2.2.0+)

Созданный на 28 мар. 2019  ·  46Комментарии  ·  Источник: openanalytics/shinyproxy

В новой версии (2.2.0) ShinyProxy все приложения, использующие DT с серверным режимом обработки, будут отключены. Браузер жалуется на ошибки Ajax, в то время как в журнале ShinyProxy указано, что методы запроса « Публикация

Снимки экрана

屏幕快照 2019-03-28 下午11 24 18
屏幕快照 2019-03-28 下午11 24 32

Пример приложения

library(shiny)
ui <- fluidPage(DT::DTOutput('tbl'))
server <- function(input, output, session) {
  output$tbl <- DT::renderDT(iris, server = TRUE)
}
shinyApp(ui, server)

Я действительно создал для этого пример docker-compose, см. Https://github.com/shrektan/shinyproxy-docker-compose-example

Самый полезный комментарий

Спасибо! Мы можем воспроизвести это и работаем над этим.

Все 46 Комментарий

Спасибо! Мы можем воспроизвести это и работаем над этим.

@shrektan благодарит за сообщение о проблеме.
Было зафиксировано исправление:
https://github.com/openanalytics/containerproxy/commit/6455abdaed031297baf600f5e71e2242b689d940

Не могли бы вы попробовать эту сборку разработчика и посмотреть, решит ли она проблему?
https://nexus.openanalytics.eu/nexus/content/repositories/snapshots/eu/openanalytics/shinyproxy/2.2.1-SNAPSHOT/shinyproxy-2.2.1-20190329.093240-2.jar

@fmichielssen Спасибо за быстрое исправление. Я могу подтвердить, что и DT, и fileInput() отлично работают со сборкой разработчика.

Спасибо за подтверждение, @shrektan! Выпущен в составе ShinyProxy 2.2.1.

Только что сделал новую установку с 2.2.1, и я получаю ту же ошибку, что и @shrektan :

Screen Shot 2019-03-31 at 2 27 42 PM

Затем в shinyproxy.log я получаю:

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]

Что интересно, это влияет на другой пакет: shinyWidgets. У меня есть набор входных данных, которые генерируются с помощью insertUI, а значения в раскрывающемся списке, выделенном ниже, извлекаются из базы данных (динамически). При локальном запуске все работает отлично (и я получаю фактические значения). При развертывании на shinyproxy я получаю NA1, NA2, NA3 ... очень странно.

Screen Shot 2019-03-31 at 2 30 48 PM

Я должен упомянуть, что на 2.1.0 все работало нормально. Если это имеет значение, я использую shinyproxy за nginx с сертификатом LetsEncrypt.

@bogdanrau Не могли бы вы предоставить фиктивный пример приложения (аналогично тому, который предоставил

Привет, @tverbeke, мне было интересно, можем ли мы теперь развернуть 2.2.1 - это исправлено?

Привет, @dylancis : исходная проблема определенно исправлена, что подтверждается нашими тестами и @shrektan. Что касается проблемы, о которой сообщил @bogdanrau , у нас пока нет воспроизводимого примера или (подтверждение от другого пользователя, проблема все еще существует).

@tverbeke , я только что попробовал образец приложения, предоставленный @shrektan, и получаю эту ошибку. Единственное различие, которое я вижу, заключается в том, что я использую .deb как службу, а не использую файл .jar. Кто-нибудь использует файл .deb?

здесь отлично работает с 2.2.1 .

здесь отлично работает с 2.2.1 .

И это с помощью установщика deb или файла jar? Я создал новую виртуальную машину с нуля, просто используя файл .deb, и по какой-то причине у меня остались те же проблемы.

что такое файл deb?

@shrektan : если вы посмотрите страницу загрузки shinyproxy (https://www.shinyproxy.io/downloads/), вы можете загрузить либо платформенно-независимый файл (.jar), либо файл deb, специфичный для Ubuntu, который вы устанавливаете с помощью dpkg. Я выбрал этот файл вместо независимого от платформы.

Я получаю ту же ошибку, что и @bogdanrau.
Моя настройка: я использую shinyproxy 2.2.1 (платформенно-независимый .jar) за nginx.
Я заметил, что эта ошибка возникает в зависимости от выбранного метода аутентификации в ShinyProxy. Когда я использую пример из @shrektan (docker pull shrektan / rdocker4working) вместе с nginx, ShinyProxy 2.2.1 и аутентификацией: просто, все работает нормально. Когда я переключаюсь на аутентификацию: keycloak, я получаю сообщение об ошибке. Сама аутентификация Keycloak вроде работает.

Могу подтвердить, что я также использую keycloak с nginx.

У меня также есть эта проблема с версией> 2.1.0 (последняя известная как работающая), даже 2.2.1 у меня не работает.
Я запускаю dockerized shinyproxy, который извлекает платформенно-независимый jar за обратным прокси Traefik v1.7.12.
Я использую keycloak v6.0.1 для аутентификации / авторизации.
Мне пришлось вернуться к версии 2.1, чтобы иметь возможность видеть таблицы данных с включенным ajax (server = TRUE), когда он отключен, он работает с более новыми версиями.

Есть ли какие-нибудь новости или способы решения этой ошибки?

Я столкнулся с той же проблемой и могу подтвердить, что проблема возникает в сочетании с аутентификацией keycloak .

Я использую shinyproxy-2.3.0.jar в dockerized среде на машине Ubuntu 18.04.2 LTS. Nginx используется как обратный прокси в сочетании с ssl-сертификатом letsencrypt.

Пример блестящего приложения:

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)

Попытка запустить верхний пример с shinyproxy и keycloak-auth (кстати, работает на одном сервере) приводит к упомянутой ошибке 503 Service Unavailable AJAX. Установка server = FALSE решает эту ошибку, но для больших таблиц не может быть и речи.

Точно такая же машина (настройка docker, shinyproxy, nginx) с простой аутентификацией или ldap в application.yml работает без каких-либо проблем .

такая же проблема с billy34
в ShinyProxy 2.3.0 используйте DT :: renderDataTable, все еще имеет ту же ошибку ajax 503
используйте keycloak v7.0.0 для аутентификации / авторизации
но обратный к 2.1 будет работать нормально

Пример приложения

library(shiny)
ui <- fluidPage(DT::dataTableOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDataTable({
DT::datatable(iris, class = 'cell-border stripe')
})
}

У меня есть тот же TruncatedResponseException упомянутый @bogdanrau, с загрузкой файлов в RStudio, работающей внутри Dockerized Shiny Proxy> 2.1 (с использованием простого метода аутентификации). https://github.com/openanalytics/shinyproxy/issues/170

Просто добавляю «я тоже». Проблема связана с серверной частью авторизации Keycloak и в противном случае не проявляется. Возврат к 2.1 работает должным образом.

Встречаем это также с KeyCloak Auth и любой версией ShinyProxy> 2.1.0

Обнаружена такая же проблема в nginx (включен ssl) и сервисе аутентификации keycloak. Тем не менее, DT отлично отображается без клавиатуры.
См. Прикрепленный файл!

Error-Traceback

Http-Response

Обнаружена такая же проблема в nginx (включен ssl) и сервисе аутентификации keycloak. Тем не менее, DT отлично отображается без клавиатуры.
См. Прикрепленный файл!

Error-Traceback

Http-Response

Баночка ShinyProxy 2.3.0 от shinyproxy.io

Мы смогли воспроизвести с помощью Keycloak. Исправление будет в следующем выпуске.

Мы смогли воспроизвести с помощью Keycloak. Исправление будет в следующем выпуске.

Спасибо, что вернулись!

Получение той же ошибки без какой-либо аутентификации. При выполнении POST-запроса типа содержимого: multipart / form-data. Любая идея, в чем разница между двумя версиями, в которых возникает эта ошибка. Пожалуйста, предложите какое-нибудь решение, если возврат невозможен. Кстати, я запускаю флягу за shinyproxy
Спасибо.

@tverbeke, не могли бы вы <dev> с исправленной проблемой? возможно, ранние тесты могут обнаружить что-то еще, что может потребовать исправления перед обновлением ветки <stable> .
Заранее спасибо.

@jaysnm исправление присутствует в ветке разработки containerproxy.

@tverbeke , жаль, что ветка разработки сборки containerproxy не удалась (см. прикрепленный файл ). Я также создал ветку разработки shinyproxy, надеясь, что containerproxy 0.8.4-SNAPSHOT на pom.xml даст предполагаемое исправление. Пока нет исправлений. На этом я останавливаюсь на своем аргументе, потому что это нечто иное, чем то, что отслеживается этой проблемой.
Спасибо.

image

@jaysnm На данный момент вам нужно компилировать с Oracle Java. Конструктор в классе sun.security.krb5.KrbTgsReq отличается в Oracle Java и OpenJDK, и мы об этом знаем.

В официальной версии 2.3.1 у меня наконец-то все работает. Пора закрыть выпуск №140?

Спасибо за отзыв, @ Dusan-Dingarac

Привет, у меня такая же проблема после обновления ShinyProxy 2.3.1 до 2.4.1, можем ли мы повторно открыть ошибку?

в браузере:
DataTables warning: table id=DataTables_Table_0 - Ajax error. For more information about this error, please see http://datatables.net/tn/7

на 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]

У меня такая же проблема с DT без ShinyProxy с балансировкой нагрузки с использованием traefik в качестве обратного прокси. Может быть связано с DT и балансировкой нагрузки?
Необходимо провести расследование на моей стороне
Вы видели эту проблему https://github.com/rstudio/DT/issues/849 ?

Я также использую traefik в качестве балансировщика нагрузки, но я вернулся к 2.3.1, и он работает нормально, с 2.4.0 и 2.4.1 он дает эту ошибку.

Привет @giordyb

Я только что протестировал пример кода в первом сообщении этой проблемы с ShinyProxy 2.4.1, и он все еще работает для меня.
Не могли бы вы поделиться следующей информацией:

  • код используемого вами приложения Shiny
  • конфигурация Traefik
  • возможно, файл для создания докеров, чтобы я мог легко проверить вашу настройку

Мне нужны как минимум две первые части, иначе я не смогу воспроизвести выпуск.
Спасибо

Просто добавьте сюда мои два цента. Чтобы гарантировать, что DT работает за балансировщиком нагрузки (Traefik), я недавно создал простой репозиторий DT-load-balancer, основанный на Docker swarm, с подробными настройками ... Я думаю, с небольшими усилиями вы можете превратить его в воспроизводимый пример для ShinyProxy об этой проблеме ...

@giordyb Я решил свою проблему с траэфиком и балансировкой нагрузки. Я все еще использую traefik 1.7 (1.7.26), и проблема с настройкой липкости все еще существует. Я использовал метку traefik.backend.loadbalancer.stickiness, как описано в документации, но безуспешно. Использование устаревшей метки "traefik.backend.loadbalancer.sticky = true" работает. Не знаю, является ли это ключом к разгадке проблемы, но кто знает.

@ billy34 спасибо, я использую traefik 2.2, я пытался включить липкий сеанс, но это не имело никакого значения. Я опубликую свой код и конфигурацию traefik в ближайшее время

@LEDfan Я запускаю traefik под kubernetes (в многоузловом кластере), поэтому реплицировать нашу среду с помощью docker-compose немного сложно.
Мне удалось создать меньшую среду с одним узлом kubernetes под докером (докер для Mac), и он все еще не работает.

вот код для приложения (это всего лишь образец, но он тоже ошибается):
_edit: код см. в следующем посте_

Я тестировал эту версию этого приложения с этой конфигурацией traefik под shinyproxy 2.3.0, и он работает, если я попробую то же самое на 2.4.1, я получаю сообщение об ошибке

Еще я попытался обойти traefik путем перенаправления портов непосредственно в контейнер shinyproxy, даже при этом появляется ошибка, поэтому я действительно сомневаюсь, что это проблема traefik.

@LEDfan

Сделал еще несколько тестов, похоже traefik тут ни при чем.

Я создал репо, которое копирует мою среду (https://github.com/giordyb/test_shinyproxy.git)

на докере для Mac с запущенным Kubernetes я создал 2 развертывания блестящего прокси (2.3.1 и 2.4.1), которые обслуживают одно и то же блестящее приложение-контейнер R.
Нет никакого traefik, доступ к блестящим прокси-модулям осуществляется через kube-proxy port-forward.

под 2.3.1 запрос к данным работает

под 2.4.1 тот же запрос не выполняется

и я получаю это в журнале контейнера 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]

Могу ли я что-нибудь сделать со своей стороны для дальнейшего устранения проблемы?

Привет @giordyb

Спасибо за ваш пример развертывания и отчет. Я изучил проблему сегодня, и это довольно странная проблема.
Проблема вызвана тем, что включено ведение журнала отладки. Есть один класс DispatcherServlet который будет регистрировать части запросов, отправляемых через ShinyProxy. Однако это вызывает проблемы с некоторыми проксируемыми запросами, поскольку часть этих запросов может быть прочитана только один раз. Следовательно, приложение Shiny получило недопустимый запрос.

Решение состоит в том, чтобы отключить ведение журнала отладки для класса org.springframework.web.servlet.DispatcherServlet следующим образом:

logging:
  level:
     root: DEBUG
     org:
        springframework:
           web:
              servlet:
                 DispatcherServlet: INFO

Это будет значение по умолчанию в следующем выпуске ShinyProxy, так что этот обходной путь больше не нужен.

Привет @LEDfan!

спасибо, что так быстро разобрались с этим. Я добавил конфигурацию ведения журнала, как вы предложили, и теперь все работает, как ожидалось, так что я счастливый турист.

Большое спасибо за Вашу помощь!

У меня такая же проблема с кубернетами за NGINX и Azure Active Directory. Таблицы данных отображаются правильно с 2.3.1, но не с 2.4.1. Я пробовал сборки с JDK8 и JDK11.

Мы удалили всю конфигурацию журналирования из application.yml и настроили NGINX на запуск «липких» сессий, но пока безуспешно.

Разместили упрощенную версию наших журналов модулей application.yml и shinyproxy на странице поддержки сообщества. https://support.openanalytics.eu/t/datatables-ajax-error-with-shinyproxy-v-2-4-1/1763 .

Привет, @smlehman , спасибо за дополнительную информацию.

Не могли бы вы предоставить пример приложения Shiny (источники Dockerfile и R) с использованием DataTables?
У меня есть одно приложение, но оно не вызывает проблем с настройкой Kubernetes (тоже с использованием nginx). Спасибо!

Привет @LEDfan
Конечно. Чтобы дать вам полную картину, я создал небольшое репо со всеми основными файлами, которые мы используем. Я также включил README, над которым работаю, для поддержки людей, заинтересованных в использовании приложения, поскольку он может предоставить дополнительный контекст для нашей установки.

https://github.com/smlehman/shinyproxy-debugDT
Сообщите мне, если есть что-нибудь еще, что поможет в устранении неполадок.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги