Shinyproxy: [バグレポート] ShinyProxyの新しいリリース(バージョン2.2.0以降)でのAJAXエラー

作成日 2019年03月28日  ·  46コメント  ·  ソース: openanalytics/shinyproxy

ShinyProxyの新しいリリースバージョン(2.2.0)では、サーバー処理モードでDTを使用するすべてのアプリが機能しなくなります。 ShinyProxyログにリクエストメソッド「投稿」がサポートされていないと表示されている間、ブラウザはAjaxエラーを訴えます。

スクリーンショット

屏幕快照 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を参照して

bug

最も参考になるコメント

ありがとう! これを再現して取り組んでいます。

全てのコメント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! ShinyProxy2.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では問題なく動作していたことをお伝えしておきます。 これが違いを生む場合に備えて、私はnginxの背後にあるshinyproxyをLetsEncrypt証明書とともに使用しています。

@bogdanrau迅速に再現できるダミーのサンプルアプリ( @shrektanが提供するものと同様)を提供していただけますか?

ねえ@ tverbeke2.2.1をデプロイできるかどうか疑問に思っていました-修正されましたか?

こんにちは@dylancis :私たちのテストと@shrektanによって確認されたように、元の問題は確実に修正されています。 @bogdanrauによって報告された問題については、再現可能な例がまだありません。または(別のユーザーからの確認にはまだ問題があります)。

@ tverbeke@ shrektanが提供するサンプルアプリを試したところ、エラーが発生しました。 私が見ることができる唯一の違いは、.jarファイルを使用するのではなく、サービスとして.debを使用していることです。 .debファイルを使用している人はいますか?

ここでは2.2.1正常に動作します。

ここでは2.2.1正常に動作します。

そして、それはdebインストーラーまたはjarファイルを使用していますか? .debファイルを使用して新しいVMを最初から作成しましたが、何らかの理由で同じ問題が発生しました。

debファイルとは何ですか?

@shrektan :shinyproxyダウンロードページ(https://www.shinyproxy.io/downloads/)を見ると、プラットフォームに依存しないファイル(.jar)、またはインストールしたUbuntu固有のdebファイルをダウンロードできます。 dpkgで。 私はそれとプラットフォームに依存しないファイルを選びました。

@bogdanrauと同じエラーが発生します。
私のセットアップ:nginxの背後でshinyproxy 2.2.1(プラットフォームに依存しない.jar)を使用しています。
このエラーは、ShinyProxyで選択した認証方法によっては発生することに気づきました。 @shrektan

nginxでkeycloakも使用していることを確認できます。

バージョン> 2.1.0(最後に動作することがわかっている)でもこの問題が発生します。2.2.1でも動作しません。
Traefikリバースプロキシv1.7.12の背後にあるプラットフォームに依存しないjarをフェッチするドッキングされたshinyproxyを実行します。
認証/承認にkeycloakv6.0.1を使用しています。
ajaxが有効になっている(server = TRUE)データテーブルを表示できるようにするには、バージョン2.1に戻す必要がありました。無効にすると、新しいバージョンで機能します。

そのバグに関するニュースや回避策はありますか?

私はまったく同じ問題を実行し、 keycloakauthと組み合わせて問題が発生することを確認できます。

私はUbuntu18.04.2LTSマシンにドッキングされた環境でshinyproxy-2.3.0.jarを使用しています。 Nginxは、letsencryptssl証明書と組み合わせてリバースプロキシとして使用されます。

例-光沢のあるアプリ:

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 UnavailableAJAXエラーが発生します。 server = FALSEにすると、そのエラーは解決されますが、大きなテーブルでは問題になりません。

application.ymlで単純なauthまたはldapを使用したまったく同じマシン(docker、shinyproxy、nginx設定)が問題なく実行されています。

ビリー34と同じ問題
ShinyProxy 2.3.0では、DT :: renderDataTableを使用しても同じajaxエラー503が発生します
認証/承認にはkeycloakv7.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')
})
}

@bogdanrauが言及したのと同じTruncatedResponseExceptionドッキングされたShiny Proxy> 2.1内で実行されているRStudioにファイルをアップロードしています(単純な認証方法を使用)。 https://github.com/openanalytics/shinyproxy/issues/170

「私も」を追加するだけです。 問題はKeycloak認証バックエンドにあり、それ以外の場合は表示されません。 2.1に戻すと、期待どおりに機能します。

KeyCloakAuthおよび2.1.0を超えるShinyProxyバージョンでもこれに遭遇します

nginx(sslが有効)とkeycloak認証サービスで同じ問題が発生しました。 ただし、DTはキークロークなしで完全に表示されます。
添付をご参照ください!

Error-Traceback

Http-Response

nginx(sslが有効)とkeycloak認証サービスで同じ問題が発生しました。 ただし、DTはキークロークなしで完全に表示されます。
添付をご参照ください!

Error-Traceback

Http-Response

shinyproxy.ioのShinyProxy2.3.​​0 jar

Keycloakで再現することができました。 修正は次のリリースで行われます。

Keycloakで再現することができました。 修正は次のリリースで行われます。

元に戻してくれてありがとう!

認証なしで同じエラーが発生します。 content-typeのPOSTリクエストを行う場合:multipart / form-data。 このエラーが発生している2つのバージョンの違いは何ですか。 元に戻すことができない場合に備えて、いくつかの解決策を提案してください。 ところで私はshinyproxyの後ろでフラスコを走らせています
ありがとう。

@tverbekeこの問題を修正して、 <dev>ブランチのスナップショットをプッシュしていただけませんか? おそらく初期のテストでは、 <stable>ブランチを更新する前に修正が必要な何かが発掘される可能性があります。
前もって感謝します。

@jaysnm修正は、containerproxyのdevelopブランチにあります。

@tverbeke containerproxyビルドの開発ブランチが失敗したのは残念です(添付を参照してください)。 また、pom.xml上のcontainerproxy 0.8.4-SNAPSHOTが修正されることを期待して、shinyproxyのdevelopブランチを構築
ありがとう。

image

@jaysnmとりあえず、OracleJavaでコンパイルする必要があります。 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]

リバースプロキシとしてtraefikを使用した負荷分散を使用したShinyProxyなしのDTでも同じ問題が発生しています。 多分DTと負荷分散にリンクされていますか?
私の側で調査する必要があります
この問題を見たことがあります

ロードバランサーとしてtraefikも使用していますが、2.3.1に戻って正常に動作し、2.4.0と2.4.1ではエラーが発生します。

こんにちは@giordyb

この問題の最初の投稿でShinyProxy2.4.1を使用してサンプルコードをテストしましたが、それでも機能します。
次の情報を共有できますか?

  • 使用しているShinyアプリのコード
  • Traefikの構成
  • おそらくdocker-composeファイルなので、セットアップを簡単にテストできます

少なくとも最初の2つのピースが必要です。そうしないと、問題を再現できません。
ありがとう

ここに私の2セントを追加するだけです。 DTがロードバランサー(Traefik)の背後で確実に機能するようにするために、最近、Docker swarmに基づいて、詳細なセットアップを備えた単純なリポジトリDT-load- balancerを作成しました...少しの努力で、再現性のあるものに変えることができると思いますこの問題に関するShinyProxyの例...

@giordybtraefikと負荷分散の問題を解決しました。 まだtraefik1.7(1.7.26)を使用していますが、スティッキ設定に問題があります。 文書化されているようにラベル「traefik.backend.loadbalancer.stickiness」を使用していましたが、成功しませんでした。 非推奨のラベル「traefik.backend.loadbalancer.sticky = true」の使用は機能しています。 それがこの問題の手がかりであるかどうかはわかりませんが、誰が知っていますか。

@ billy34ありがとう、traefik 2.2を実行しています。スティッキーセッションを有効にしようとしましたが、違いはありませんでした。 コードとtraefik設定をまもなく投稿します

@LEDfan私は(マルチノードクラスター上の)kubernetesでtraefikを実行しているので、docker-composeを使用して環境を複製するのは少し注意が必要です。
docker(Macの場合はdocker)の下に単一のkubernetesノードを使用して、より小さな環境を作成できましたが、それでもエラーが発生します。

これがアプリのコードです(これは単なるサンプルですが、エラーも発生します):
_編集:コードについては次の投稿を参照してください_

このバージョンのこのアプリをshinyproxy2.3.​​0でtraefikのこの構成でテストしましたが、2.4.1で同じことを試してみると、エラーが発生します。

私が試したもう1つのことは、shinyproxyコンテナに直接ポート転送することでtraefikをバイパスすることです。これを実行してもエラーが表示されるため、traefikの問題ではないかと思います。

@LEDfan

私はさらにいくつかのテストを行いましたが、traefikはそれとは何の関係もないようです。

環境を複製するリポジトリを作成しました(https://github.com/giordyb/test_shinyproxy.git)

kubernetesを実行しているMac用のDockerで、同じ光沢のあるRコンテナーアプリケーションを提供する光沢のあるプロキシ(2.3.1と2.4.1)の2つのデプロイメントを作成しました。
関係するtraefikはありません。光沢のあるプロキシポッドには、kube-proxyポートフォワードを介してアクセスします。

2.3.1では、datatableへのリクエストは機能します

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

展開とレポートの例をありがとうございます。 今日この問題を調べましたが、それはかなり奇妙な問題です。
この問題は、デバッグログが有効になっていることが原因で発生します。 ShinyProxyを介して送信されたリクエストの一部をログに記録するクラスDispatcherServletが1つあります。 ただし、これらのリクエストの一部は1回しか読み取れないため、これにより一部のプロキシリクエストで問題が発生します。 したがって、Shinyアプリは無効なリクエストを受け取りました。

解決策は、次のようにorg.springframework.web.servlet.DispatcherServletクラスのデバッグログを無効にすることです。

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

これは次のShinyProxyリリースのデフォルトになるため、この回避策は不要になります。

こんにちは@LEDfan

早急に調査していただきありがとうございます。 あなたが提案したようにロギング構成を追加しましたが、今ではすべてが期待どおりに機能しているので、私は幸せなキャンピングカーです。

手伝ってくれてありがとうございます!

NGINXとAzureActiveDirectoryの背後にあるkubernetesでも同じ問題が発生しています。 データテーブルは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 、あなたの追加情報をありがとう。

DataTablesを使用したShinyアプリ(DockerfileおよびRソース)の例を教えてください。
アプリが1つありますが、Kubernetesのセットアップで問題は発生しません(nginxも使用)。 ありがとう!

こんにちは@LEDfan
確実なこと。 全体像を把握するために、使用しているすべての基本ファイルを含む小さなリポジトリを作成しました。 また、アプリケーションの使用に関心のある人々をサポートするために取り組んでいるREADMEも含めました。これは、セットアップに関する追加のコンテキストを提供する可能性があるためです。

https://github.com/smlehman/shinyproxy-debugDT
トラブルシューティングに役立つものが他にあるかどうか教えてください。

このページは役に立ちましたか?
0 / 5 - 0 評価