Shinyproxy: [تقرير الشوائب] خطأ AJAX في الإصدار الجديد من ShinyProxy (الإصدار 2.2.0+)

تم إنشاؤها على ٢٨ مارس ٢٠١٩  ·  46تعليقات  ·  مصدر: openanalytics/shinyproxy

في الإصدار الجديد (2.2.0) من ShinyProxy ، ستتعطل جميع التطبيقات التي تستخدم DT مع وضع معالجة الخادم. يشكو المتصفح من أخطاء Ajax بينما يقول سجل ShinyProxy أن طرق الطلب "Post" غير مدعومة .

لقطات شاشة

屏幕快照 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)

لقد قمت بالفعل بإعداد مثال إنشاء عامل الإرساء لهذا ، راجع 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! تم إصداره كجزء من ShinyProxy 2.2.1

لقد أجريت للتو تثبيتًا جديدًا مع 2.2.1 وأنا أتلقى نفس الخطأ كما أبلغ

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 هل يمكنك توفير مثال وهمي للتطبيق (على غرار التطبيق shrektan المقدم) الذي يسمح لنا بإعادة الإنتاج بسرعة؟

مرحبًا tverbeke كنت أتساءل عما إذا كان بإمكاننا الآن نشر 2.2.1 - هل تم إصلاحه؟

مرحبًا dylancis : تم إصلاح المشكلة الأصلية بالتأكيد كما أكدت اختباراتنا وshrektan. بالنسبة إلى المشكلة التي تم الإبلاغ عنها بواسطة bogdanrau ، ليس لدينا مثال قابل للتكرار حتى الآن أو (تأكيد من مستخدم آخر لا تزال هناك مشكلة).

tverbeke ، لقد جربت للتو نموذج التطبيق الذي قدمهshrektan وأنا أتلقى هذا الخطأ. الاختلاف الوحيد الذي يمكنني رؤيته هو أنني أستخدم .deb كخدمة ، بدلاً من استخدام ملف .jar. هل يستخدم أي شخص ملف .deb؟

يعمل بشكل جيد هنا مع 2.2.1 .

يعمل بشكل جيد هنا مع 2.2.1 .

وذلك باستخدام برنامج التثبيت deb أو ملف jar؟ لقد أنشأت VM جديدًا من البداية فقط باستخدام ملف .deb وما زلت أعاني من نفس المشكلات لأي سبب من الأسباب.

ما هو ملف deb؟

shrektan : إذا نظرت إلى صفحة تنزيل shinyproxy (https://www.shinyproxy.io/downloads/) ، يمكنك تنزيل إما ملف مستقل عن النظام الأساسي (.jar) ، أو ملف deb خاص بـ Ubuntu تقوم بتثبيته مع dpkg. اخترت ذلك مقابل الملف المستقل للنظام الأساسي.

أحصل على نفس الخطأ مثلbogdanrau.
إعدادي: أنا أستخدم shinyproxy 2.2.1 (مستقل عن النظام الأساسي .jar) خلف nginx.
لقد لاحظت أن هذا الخطأ يحدث اعتمادًا على طريقة المصادقة المختارة في ShinyProxy. عندما أستخدم المثال من shrektan (

يمكن أن أؤكد أنني أستخدم أيضًا keycloak مع nginx.

لدي أيضًا هذه المشكلة مع الإصدار> 2.1.0 (آخر عمل معروف) حتى 2.2.1 لا يعمل معي.
أقوم بتشغيل shinyproxy المرساة الذي يجلب إناء مستقل للنظام الأساسي خلف وكيل عكسي Traefik v1.7.12.
أنا أستخدم keycloak v6.0.1 للمصادقة / التفويض.
اضطررت إلى العودة إلى الإصدار 2.1 لأتمكن من رؤية جداول البيانات مع تمكين ajax (الخادم = TRUE) عند تعطيله ، فهو يعمل مع الإصدارات الأحدث.

هل هناك أي أخبار أو حلول لهذا الخطأ؟

أركض نفس المشكلة بالضبط ويمكنني أن أؤكد أن المشكلة تحدث بالاشتراك مع keycloak auth .

أنا أستخدم shinyproxy-2.3.0.jar في بيئة مُرسلة على جهاز Ubuntu 18.04.2 LTS. يتم استخدام Nginx كوكيل عكسي مع شهادة Letsencrypt ssl.

مثال-لامعة-التطبيق:

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 المذكور. تحول الخادم = FALSE يحل هذا الخطأ ولكنه غير وارد بالنسبة للجداول الكبيرة.

نفس الجهاز (docker ، shinyproxy ، nginx setting) مع مصادقة بسيطة أو ldap في application.yml يعمل دون أي مشكلة .

نفس المشكلة مع billy34
في ShinyProxy 2.3.0 ، لا يزال استخدام DT :: renderDataTable به نفس خطأ أجاكس 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 الذي يعمل داخل Shiny Proxy رصيف> 2.1 (باستخدام طريقة مصادقة بسيطة). https://github.com/openanalytics/shinyproxy/issues/170

مجرد إضافة "أنا أيضًا". المشكلة تتعلق بخلفية ترخيص Keycloak ولا تظهر بخلاف ذلك. العودة إلى 2.1 يعمل كما هو متوقع.

مواجهة هذا أيضًا مع KeyCloak Auth وأي إصدار ShinyProxy> 2.1.0

تمت مواجهة نفس المشكلة في nginx (تمكين SSL) وخدمة مصادقة keycloak. ومع ذلك ، يتم عرض DT بشكل مثالي بدون keycloak.
لو سمحت انظر للمرفق!

Error-Traceback

Http-Response

تمت مواجهة نفس المشكلة في nginx (تمكين SSL) وخدمة مصادقة keycloak. ومع ذلك ، يتم عرض DT بشكل مثالي بدون keycloak.
لو سمحت انظر للمرفق!

Error-Traceback

Http-Response

وعاء ShinyProxy 2.3.0 من shinyproxy.io

تمكنا من التكاثر باستخدام Keycloak. الإصلاح سيكون في الإصدار القادم.

تمكنا من التكاثر باستخدام Keycloak. الإصلاح سيكون في الإصدار القادم.

شكرا على العودة!

الحصول على نفس الخطأ بدون أي نوع من المصادقة. عند إجراء طلب POST لنوع المحتوى: متعدد الأجزاء / بيانات النموذج. أي فكرة عن الفرق بين النسختين أن هذا الخطأ قادم. يُرجى اقتراح بعض الحلول في حالة عدم توفر خيار الرجوع. راجع للشغل أنا أركض قارورة خلف shinyproxy
شكرا.

tverbeke ، هل يمكنك التفضل <dev> مع إصلاح هذه المشكلة؟ ربما تكتشف الاختبارات المبكرة شيئًا آخر قد يحتاج إلى إصلاح قبل تحديث الفرع <stable> .
شكرا لك مقدما.

jaysnm الإصلاح موجود في فرع التطوير من containerproxy.

tverbeke من المؤسف أن تطوير فرع من بناء containerproxy فشل (يرجى الاطلاع على المرفق). لقد قمت أيضًا ببناء فرع تطوير shinyproxy على أمل أن تعطي الحاوية 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 بسيط يعتمد على سرب Docker ، مع إعدادات مفصلة ... أعتقد أنه مع القليل من الجهد ، يمكنك تحويله إلى نسخة قابلة للتكرار مثال لـ ShinyProxy حول هذه المشكلة ...

giordyb لقد قمت بحل مشكلتي مع traefik وموازنة الحمل. ما زلت أستخدم traefik 1.7 (1.7.26) وما زالت هناك مشكلة في تكوين الالتصاق. كنت أستخدم التسمية "traefik.backend.loadbalancer.stickiness" كما هو موثق ولكن دون نجاح. استخدام التسمية المهملة "traefik.backend.loadbalancer.sticky = true" يعمل. لا أعرف ما إذا كان هذا دليلًا لهذه المشكلة ولكن من يدري.

@ billy34 شكرًا ، أنا أقوم بتشغيل traefik 2.2 ، لقد حاولت تمكين الجلسة اللاصقة لكنها لم تحدث أي فرق. سوف أقوم بنشر الكود الخاص بي وتكوين traefik قريبًا

LEDfan أنا أقوم بتشغيل traefik ضمن kubernetes (على مجموعة متعددة العقد) لذا من الصعب بعض الشيء نسخ بيئتنا باستخدام عامل عامل إنشاء.
لقد تمكنت من إنشاء بيئة أصغر باستخدام عقدة kubernetes واحدة تحت عامل الإرساء (عامل تشغيل لنظام التشغيل Mac) ولا يزال هناك أخطاء.

إليك رمز التطبيق (إنه مجرد نموذج ولكنه يظهر أخطاء أيضًا):
_ تحرير: انظر المنشور التالي للرمز_

لقد اختبرت هذا الإصدار من هذا التطبيق باستخدام تكوين traefik هذا تحت shinyproxy 2.3.0 وهو يعمل ، إذا جربت نفس الشيء في 2.4.1 تلقيت الخطأ

الشيء الآخر الذي حاولت القيام به هو تجاوز traefik عن طريق إعادة توجيه المنفذ مباشرة إلى حاوية shinyproxy ، حتى من خلال القيام بذلك ، يظهر الخطأ ، لذلك أشك حقًا في أنها مشكلة traefik.

تضمين التغريدة

لقد أجريت المزيد من الاختبارات ، يبدو أن traefik لا علاقة له بها.

لقد أنشأت الريبو الذي يكرر بيئتي (https://github.com/giordyb/test_shinyproxy.git)

على docker لنظام التشغيل mac الذي يقوم بتشغيل kubernetes ، قمت بإنشاء عمليتي نشر للوكيل اللامع (2.3.1 و 2.4.1) التي تخدم نفس تطبيق حاوية R اللامع.
لا يوجد traefik متورط ، يتم الوصول إلى كبسولات الوكيل اللامعة عبر منفذ kube-proxy-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 ،

شكرا للنظر في هذا بسرعة. لقد أضفت تكوين التسجيل كما اقترحت والآن كل شيء يعمل كما هو متوقع ، لذلك أنا سعيد العربة.

شكرا جزيلا لك على مساعدتك!

أواجه نفس المشكلة مع kubernetes خلف NGINX و Azure Active Directory. يتم عرض جداول البيانات بشكل صحيح مع 2.3.1 ولكن ليس مع 2.4.1. لقد حاولت إنشاءات مع JDK8 ومع JDK11.

لقد أزلنا جميع إعدادات التسجيل من application.yml وقمنا بتعيين NGINX لتشغيل جلسات "لزجة" ، لكن لم يحالفنا الحظ حتى الآن.

لقد قمت بنشر نسخة مبسطة من سجلات pod 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 التقييمات