Shinyproxy: [Laporan Bug] Kesalahan AJAX dalam rilis baru ShinyProxy (versi 2.2.0+)

Dibuat pada 28 Mar 2019  Β·  46Komentar  Β·  Sumber: openanalytics/shinyproxy

Dalam versi rilis baru (2.2.0) dari ShinyProxy, semua Aplikasi yang menggunakan DT dengan mode pemrosesan server akan rusak. Peramban mengeluh kesalahan Ajax sementara log ShinyProxy mengatakan Metode Permintaan 'Posting' tidak didukung .

Tangkapan Layar

屏幕快照 2019-03-28 δΈ‹εˆ11 24 18
屏幕快照 2019-03-28 δΈ‹εˆ11 24 32

Contoh aplikasi

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

Saya benar-benar menyiapkan contoh pembuatan buruh pelabuhan untuk ini, lihat https://github.com/shrektan/shinyproxy-docker-compose-example

bug

Komentar yang paling membantu

Terima kasih! Kami dapat mereproduksi ini dan sedang mengerjakannya.

Semua 46 komentar

Terima kasih! Kami dapat mereproduksi ini dan sedang mengerjakannya.

@shrektan terima kasih telah melaporkan masalah ini.
Perbaikan telah dilakukan:
https://github.com/openanalytics/containerproxy/commit/6455abdaed031297baf600f5e71e2242b689d940

Bisakah Anda mencoba membangun dev ini dan melihat apakah itu memperbaiki masalah?
https://nexus.openanalytics.eu/nexus/content/repositories/snapshots/eu/openanalytics/shinyproxy/2.2.1-SNAPSHOT/shinyproxy-2.2.1-20190329.093240-2.jar

@fmichielssen Terima kasih atas perbaikan cepatnya. Saya dapat mengonfirmasi bahwa DT dan fileInput() berfungsi dengan baik dengan build dev.

Terima kasih atas konfirmasinya, @shrektan! Dirilis sebagai bagian dari ShinyProxy 2.2.1

Baru saja melakukan instalasi baru dengan 2.2.1 dan saya mendapatkan kesalahan yang sama seperti yang dilaporkan @shrektan :

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

Kemudian, di glossyproxy.log, saya mendapatkan:

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]

Yang menarik adalah ini mempengaruhi paket lain: glossyWidgets. Saya memiliki banyak input yang dihasilkan menggunakan insertUI, dan nilai-nilai dalam daftar dropdown yang disorot di bawah ini ditarik dari database (dinamis). Saat menjalankan lokal, semuanya berjalan dengan baik (dan saya mendapatkan nilai aktual). Saat menyebarkan ke glossyproxy, saya mendapatkan NA1, NA2, NA3...sangat aneh.

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

Saya harus menyebutkan bahwa semuanya bekerja dengan baik pada 2.1.0. Jika ini membuat perbedaan, saya menggunakan glossyproxy di belakang nginx, dengan sertifikat LetsEncrypt.

@bogdanrau Bisakah Anda memberikan contoh aplikasi dummy (mirip dengan yang disediakan @shrektan ) yang memungkinkan kami untuk mereproduksi dengan cepat?

Hai @tverbeke Saya ingin tahu apakah kami sekarang dapat menerapkan 2.2.1 - apakah sudah diperbaiki?

Halo @dylancis : masalah aslinya sudah pasti diperbaiki sebagaimana dikonfirmasi oleh pengujian kami dan oleh @shrektan. Untuk masalah yang dilaporkan oleh @bogdanrau , kami belum memiliki contoh yang dapat direproduksi atau (konfirmasi dari pengguna lain masih ada masalah).

@tverbeke , saya baru saja mencoba aplikasi sampel yang disediakan @shrektan dan saya mendapatkan kesalahan itu. Satu-satunya perbedaan yang dapat saya lihat adalah saya menggunakan .deb sebagai layanan, daripada menggunakan file .jar. Apakah ada yang menggunakan file .deb?

berfungsi dengan baik di sini dengan 2.2.1 .

berfungsi dengan baik di sini dengan 2.2.1 .

Dan itu menggunakan penginstal deb, atau file jar? Saya membuat VM baru dari awal hanya menggunakan file .deb dan masih memiliki masalah yang sama karena alasan apa pun.

apa file debnya?

@shrektan : jika Anda melihat halaman unduhan glossyproxy (https://www.shinyproxy.io/downloads/), Anda dapat mengunduh file platform-independen (.jar), atau file deb khusus untuk Ubuntu yang Anda instal dengan dpkg. Saya memilih itu vs. file independen platform.

Saya mendapatkan kesalahan yang sama seperti @bogdanrau.
Pengaturan saya: Saya menggunakan shinyproxy 2.2.1 (.jar platform-independen) di belakang nginx.
Saya perhatikan bahwa kesalahan ini terjadi tergantung pada metode otentikasi yang dipilih di ShinyProxy. Ketika saya menggunakan contoh dari @shrektan (docker pull shrektan/rdocker4working) bersama dengan nginx, ShinyProxy 2.2.1 dan otentikasi: sederhana, semuanya berfungsi dengan baik. Ketika saya beralih ke otentikasi: keycloak saya mendapatkan kesalahan. Otentikasi Keycloak itu sendiri tampaknya berfungsi.

Dapat mengonfirmasi bahwa saya juga menggunakan keycloak dengan nginx.

Saya juga memiliki masalah dengan versi >2.1.0 (terakhir diketahui berfungsi) bahkan 2.2.1 tidak berfungsi untuk saya.
Saya menjalankan glossyproxy dockerized yang mengambil toples independen platform di belakang proxy terbalik Traefik v1.7.12 .
Saya menggunakan keycloak v6.0.1 untuk Otentikasi/Otorisasi.
Saya harus kembali ke versi 2.1 untuk dapat melihat tabel data dengan ajax diaktifkan (server=TRUE) ketika dinonaktifkan ini berfungsi dengan versi yang lebih baru.

Apakah ada berita atau solusi untuk bug itu?

Saya menjalankan masalah yang sama persis dan dapat mengonfirmasi bahwa masalah terjadi dalam kombinasi dengan keycloak auth .

Saya menggunakan shinyproxy-2.3.0.jar di lingkungan buruh pelabuhan ke mesin Ubuntu 18.04.2 LTS. Nginx digunakan sebagai proxy terbalik dalam kombinasi dengan sertifikat ssl letsencrypt.

Contoh-Aplikasi-mengkilap:

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)

Mencoba menjalankan contoh atas dengan glossyproxy dan keycloak-auth (btw. berjalan di server yang sama) mengarah ke kesalahan AJAX 503 Service Unavailable yang disebutkan. Mengubah server=FALSE memecahkan kesalahan itu tetapi tidak mungkin untuk tabel besar.

Mesin yang sama persis (pengaturan buruh pelabuhan,shinyproxy,nginx) dengan auth atau ldap sederhana di application.yml berjalan tanpa masalah .

masalah yang sama dengan billy34
di ShinyProxy 2.3.0, gunakan DT::renderDataTable masih memiliki kesalahan ajax yang sama 503
gunakan keycloak v7.0.0 untuk Otentikasi/Otorisasi
tetapi membalikkan ke 2.1 akan berfungsi dengan baik

Contoh Aplikasi

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

Saya memiliki TruncatedResponseException disebutkan oleh @bogdanrau dengan mengunggah file ke RStudio yang berjalan di dalam Dockerized Shiny Proxy > 2.1 (menggunakan metode auth sederhana). https://github.com/openanalytics/shinyproxy/issues/170

Hanya menambahkan 'saya juga'. Masalahnya adalah dengan backend otorisasi Keycloak dan sebaliknya tidak muncul. Mengembalikan ke 2.1 berfungsi seperti yang diharapkan.

Menghadapi ini juga dengan KeyCloak Auth dan versi ShinyProxy > 2.1.0

Mengalami masalah yang sama di nginx (ssl diaktifkan) dan layanan auth keycloak. Namun, DT ditampilkan dengan sempurna tanpa keycloak.
Silakan lihat lampiran!

Error-Traceback

Http-Response

Mengalami masalah yang sama di nginx (ssl diaktifkan) dan layanan auth keycloak. Namun, DT ditampilkan dengan sempurna tanpa keycloak.
Silakan lihat lampiran!

Error-Traceback

Http-Response

ShinyProxy 2.3.0 jar dari glossyproxy.io

Kami dapat mereproduksi dengan Keycloak. Perbaikan akan ada di rilis berikutnya.

Kami dapat mereproduksi dengan Keycloak. Perbaikan akan ada di rilis berikutnya.

Terima kasih telah kembali!

Mendapatkan kesalahan yang sama, tanpa otentikasi apa pun. Saat membuat permintaan POST dari tipe konten: multipart/form-data. Tahu apa perbedaan antara dua versi bahwa kesalahan ini akan datang. Harap sarankan beberapa solusi jika pengembalian bukanlah pilihan. Btw saya menjalankan labu di belakang glossyproxy
Terima kasih.

@tverbeke bisakah Anda mendorong snapshot cabang <dev> dengan masalah ini diperbaiki? mungkin pengujian awal dapat menemukan hal lain yang mungkin perlu diperbaiki sebelum memperbarui cabang <stable> .
Terima kasih sebelumnya.

@jaysnm perbaikannya ada di cabang pengembangan containerproxy.

@tverbeke sangat disayangkan pengembangan cabang dari containerproxy build gagal (silakan lihat terlampir). Saya juga telah membangun cabang pengembangan dari glossyproxy dengan harapan containerproxy 0.8.4-SNAPSHOT di pom.xml akan memberikan perbaikan yang dimaksudkan. Belum ada perbaikan. Pada titik ini saya mengistirahatkan kasus saya karena ini adalah sesuatu yang berbeda dari apa yang dilacak oleh masalah ini.
Terima kasih.

image

@jaysnm Anda perlu mengkompilasi dengan Oracle Java untuk saat ini. Konstruktor di kelas sun.security.krb5.KrbTgsReq berbeda antara Oracle Java dan OpenJDK dan kami menyadarinya.

Dengan versi resmi 2.3.1 ini akhirnya berfungsi dengan baik untuk saya. Saatnya untuk menutup edisi #140 ini?

Terima kasih atas umpan baliknya, @Dusan-Dingarac

Hai, Saya mengalami masalah yang sama setelah memutakhirkan dari ShinyProxy 2.3.1 ke 2.4.1, bisakah kami membuka kembali bug?

di peramban:
DataTables warning: table id=DataTables_Table_0 - Ajax error. For more information about this error, please see http://datatables.net/tn/7

di proxy mengkilap
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]

Saya mengalami masalah yang sama dengan DT tanpa ShinyProxy dengan penyeimbangan beban menggunakan traefik sebagai proxy terbalik. Mungkin terkait dengan DT dan load balancing?
Perlu menyelidiki di pihak saya
Pernahkah Anda melihat masalah ini https://github.com/rstudio/DT/issues/849 ?

Saya juga menggunakan traefik sebagai penyeimbang beban tetapi saya kembali ke 2.3.1 dan berfungsi dengan baik, dengan 2.4.0 dan 2.4.1 memberikan kesalahan itu.

Hai @giordyb

Saya baru saja menguji kode contoh di posting pertama masalah ini dengan ShinyProxy 2.4.1 dan itu masih berfungsi untuk saya.
Bisakah Anda membagikan informasi berikut:

  • kode aplikasi Shiny yang Anda gunakan
  • konfigurasi Traefik
  • mungkin file pembuatan buruh pelabuhan sehingga saya dapat dengan mudah menguji pengaturan Anda

Saya membutuhkan setidaknya dua bagian pertama, jika tidak, saya tidak akan dapat membuat ulang masalah tersebut.
Terima kasih

Tambahkan saja dua sen saya di sini. Untuk memastikan DT bekerja di belakang penyeimbang beban (Traefik), saya baru-baru ini membuat repo DT-load-balancer sederhana berdasarkan kawanan Docker, dengan pengaturan terperinci... Saya pikir dengan sedikit usaha, Anda dapat mengubahnya menjadi yang dapat direproduksi contoh untuk ShinyProxy tentang masalah ini ...

@giordyb saya memecahkan masalah saya dengan traefik dan load balancing. Saya masih menggunakan traefik 1.7 (1.7.26) dan masih ada masalah dengan konfigurasi lengket. Saya menggunakan label "traefik.backend.loadbalancer.stickiness" seperti yang didokumentasikan tetapi tidak berhasil. Menggunakan label usang "traefik.backend.loadbalancer.sticky=true" berfungsi. Tidak tahu apakah itu petunjuk untuk masalah ini, tetapi siapa yang tahu.

@ billy34 terima kasih, saya menjalankan traefik 2.2, saya mencoba mengaktifkan sesi lengket tetapi tidak ada bedanya. Saya akan segera memposting kode dan konfigurasi traefik saya

@LEDfan Saya menjalankan traefik di bawah kubernetes (pada cluster multi-node) jadi agak sulit untuk mereplikasi lingkungan kita dengan file docker-compose.
Saya dapat membuat lingkungan yang lebih kecil dengan satu simpul kubernetes di bawah buruh pelabuhan ( buruh pelabuhan untuk mac ) dan masih error.

di sini adalah kode untuk aplikasi (ini hanya contoh tetapi juga salah):
_edit: lihat postingan selanjutnya untuk kodenya_

Saya menguji versi aplikasi ini dengan konfigurasi traefik ini di bawah glossyproxy 2.3.0 dan berhasil, jika saya mencoba hal yang sama pada 2.4.1 saya mendapatkan kesalahan

Hal lain yang saya coba adalah mem-bypass traefik dengan meneruskan port langsung ke wadah glossyproxy, bahkan dengan melakukan ini kesalahan muncul, jadi saya benar-benar ragu itu masalah traefik.

@LEDfan

Saya melakukan beberapa tes lagi, sepertinya traefik tidak ada hubungannya dengan itu.

Saya membuat repo yang mereplikasi lingkungan saya (https://github.com/giordyb/test_shinyproxy.git)

pada buruh pelabuhan untuk mac yang menjalankan kubernetes, saya membuat 2 penerapan proxy mengkilap (2.3.1 dan 2.4.1) yang melayani aplikasi wadah R mengkilap yang sama.
Tidak ada traefik yang terlibat, pod proxy mengkilap diakses melalui port-forward kube-proxy.

di bawah 2.3.1 permintaan ke karya yang dapat didata

di bawah 2.4.1 permintaan yang sama gagal

dan saya mendapatkan ini di log wadah glossyproxy
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]

apakah ada hal lain yang dapat saya lakukan untuk memecahkan masalah lebih lanjut?

Hai @giordyb

Terima kasih atas contoh penerapan dan laporan Anda. Saya melihat ke dalam masalah hari ini dan itu masalah yang cukup aneh.
Masalah ini disebabkan karena logging debug diaktifkan. Ada satu kelas DispatcherServlet yang akan mencatat bagian dari permintaan yang dikirim melalui ShinyProxy. Namun, ini menyebabkan masalah dengan beberapa permintaan proxy, karena sebagian dari permintaan tersebut hanya dapat dibaca sekali. Oleh karena itu, aplikasi Shiny menerima permintaan yang tidak valid.

Solusinya adalah dengan menonaktifkan debug logging untuk kelas org.springframework.web.servlet.DispatcherServlet sebagai berikut:

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

Ini akan menjadi default di rilis ShinyProxy berikutnya, sehingga solusi ini tidak lagi diperlukan.

Hai @LEDfan ,

terima kasih untuk melihat ke dalam ini begitu cepat. Saya menambahkan konfigurasi logging seperti yang Anda sarankan dan sekarang semuanya berfungsi seperti yang diharapkan, jadi saya senang berkemah.

terima kasih banyak atas bantuan Anda!

Saya mengalami masalah yang sama dengan kubernetes di belakang NGINX dan Azure Active Directory. Tabel Data ditampilkan dengan benar dengan 2.3.1 tetapi tidak dengan 2.4.1. Saya sudah mencoba membangun dengan JDK8 dan dengan JDK11.

Kami telah menghapus semua konfigurasi logging dari application.yml dan telah menyetel NGINX untuk menjalankan sesi 'lengket', tetapi sejauh ini tidak berhasil.

Telah memposting versi sederhana dari application.yml dan log pod mengkilapproxy kami di halaman dukungan komunitas. https://support.openanalytics.eu/t/datatables-ajax-error-with-shinyproxy-v-2-4-1/1763 .

Hai @smlehman , terima kasih atas informasi tambahannya.

Bisakah Anda memberikan contoh aplikasi Shiny (sumber Dockerfile dan R) menggunakan DataTables?
Saya memiliki satu aplikasi, tetapi tidak memberikan masalah pada pengaturan Kubernetes (menggunakan nginx juga). Terima kasih!

Hai @LEDfan
Tentu saja. Untuk memberikan gambaran lengkap, saya telah membuat repo kecil dengan semua file dasar yang kami gunakan. Saya juga menyertakan README yang sedang saya kerjakan untuk mendukung orang-orang yang tertarik menggunakan aplikasi, karena mungkin memberikan konteks tambahan tentang pengaturan kami.

https://github.com/smlehman/shinyproxy-debugDT
Beri tahu saya jika ada hal lain yang dapat membantu pemecahan masalah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat