Zammad: LDAP / Exchange UTF-8 رمز الحالة 500

تم إنشاؤها على ٢٤ يوليو ٢٠١٨  ·  59تعليقات  ·  مصدر: zammad/zammad

مرحبًا - شكرًا لتقديمك لمشكلة. يُرجى التأكد من الأمور التالية قبل إنشاء مشكلة - شكرًا لك! 🤓 منذ 15 نوفمبر ، نتعامل مع جميع الطلبات ، باستثناء الأخطاء الحقيقية ، في لوحة مجتمعنا. الشرح الكامل: https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 يرجى نشر: - طلبات الميزات - أسئلة التطوير - الأسئلة الفنية على السبورة -> https: / /community.zammad.org! إذا كنت تعتقد أنك واجهت خطأ ، فالرجاء المتابعة: - البحث في المشكلات الحالية و CHANGELOG.md لمشكلتك - قد يكون هناك حل بالفعل - تأكد من استخدام أحدث إصدار من Zammad إن أمكن - أضف `` السجل / الإنتاج. log` من نظامك. تنبيه: تأكد من عدم وجود بيانات سرية فيه! - يرجى كتابة المشكلة باللغة الإنجليزية - لا تقم بإزالة النموذج - وإلا سنغلق المشكلة دون مزيد من التعليقات - اطرح أسئلة حول تكوين واستخدام Zammad في قائمتنا البريدية. انظر: https://zammad.org/participate ملاحظة: نحن دائماً نبذل قصارى جهدنا. لسوء الحظ ، أحيانًا يكون هناك عدد كبير جدًا من الطلبات ولا يمكننا التعامل مع كل شيء مرة واحدة. إذا كنت ترغب في تحديد أولويات / تصعيد مشكلتك ، فيمكنك القيام بذلك عن طريق عقد دعم (راجع https://zammad.com/pricing#selfhosted). * ستتم إزالة الكتلة النصية العلوية تلقائيًا عند إرسال مشكلتك *

معلومات:

  • الإصدار المستخدم من Zammad
  • طريقة التثبيت (المصدر ، الحزمة ، ..): DEP
  • نظام التشغيل: ubuntu 18.04
  • إصدار قاعدة البيانات +: psql (PostgreSQL) 10.4 (Ubuntu 10.4-0ubuntu0.18.04)
  • إصدار Elasticsearch
  • إصدار المتصفح +:
    كروم

سلوك متوقع:

تم عرض إطار LDPA (في نظام قائمة التكوين -> التكامل -> LDAP) بدون أخطاء
*

السلوك الفعلي:

لا يتم عرض إطار LDAP. يظل الإطار فارغًا مع ظهور رسالة خطأ
أيضا API والمراقبة
2018-07-24 08_35_07-microsoft edge
*
رمز الحالة 500
{"خطأ": "\" \ xC5 \ "من ASCII-8BIT إلى UTF-8"}

خطوات إعادة إنتاج السلوك:

فقط تكوين LDAP.

*
التكوين الخاص بي:
المحول: postgresql
قاعدة البيانات: zammad
حمام السباحة: 50
المهلة: 5000
الترميز: utf8
اسم المستخدم: zammad

log / production.log:

/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `block in tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:26:in `tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/tagged_logging.rb:69:in `tagged'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/rack/logger.rb:24:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/request_id.rb:25:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/method_override.rb:22:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/runtime.rb:22:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/cache/strategy/local_cache_middleware.rb:27:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/executor.rb:12:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/actionpack-5.1.5/lib/action_dispatch/middleware/static.rb:125:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/rack-2.0.5/lib/rack/sendfile.rb:111:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/engine.rb:522:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/configuration.rb:225:in `call'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:624:in `handle_request'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:438:in `process_client'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/server.rb:302:in `block in run'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/puma-3.11.0/lib/puma/thread_pool.rb:120:in `block in spawn_thread'
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
I, [2018-07-24T09:47:49.326279 #12796]  INFO -- : Completed 500 Internal Server Error in 1121ms (Views: 0.3ms | ActiveRecord: 43.9ms)
I, [2018-07-24T09:47:50.981956 #12794]  INFO -- : 2018-07-24T09:47:50+0200: [Worker(host:support pid:12794)] Job Observer::UserDeviceLogJob (id=3437) RUNNING
I, [2018-07-24T09:47:51.081012 #12794]  INFO -- : 2018-07-24T09:47:51+0200: [Worker(host:support pid:12794)] Job Observer::UserDeviceLogJob (id=3437) COMPLETED after 0.0988

نعم أنا متأكد من أن هذا خطأ وليس طلب ميزة أو سؤال عام.

LDAP bug import

التعليق الأكثر فائدة

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

احذف التكوين القديم بالأمر التالي:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • وقف خدمة زماد

  • تحديث zammad

  • ابدأ خدمة zammad مرة أخرى وحاول إعادة تكوين اتصال ldap

بعد هذا لم أواجه أي مشكلة.

يعتبر

ال 59 كومينتر

مرحبًا @ e311 - هل يمكنك من فضلك تقديم الجزء العلوي من السجل أيضًا؟ هذا هو المكان الذي يتم فيه طباعة المعلومات المطلوبة وهو مفقود حاليًا. بالإضافة إلى ذلك: هل يمكنك من فضلك وصف الخطوات التي قمت بها للوصول إلى المشكلة؟ هذا غير واضح حاليا. شكرا!

أهلا،
سأجربه.
أقوم بفتح LDAP (في admin -> system -> Integarion). أبدأ التكوين كل شيء على ما يرام.
كلمة مرور مستخدم المجال DN.
3 ldap

لقد استخدمت رسم الخرائط القياسي.
4

Ad تبدو شاشة تكوين LDAP جيدة.
6
أضغط بأمان. وقد تلقيت رسالة خطأ.
7

بعد إعادة تحميل الصفحة ، يكون الإطار فارغًا.
2018-07-24 08_35_07-microsoft edge

وهنا ملف السجل الكامل:

log.txt

مرحبًا @ e311 - شكرًا على الكتابة الشاملة! السطر المثير للاهتمام في السجل هو هذا:

E, [2018-07-24T11:39:30.491795 #973] ERROR -- : "\xC5" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.5/lib/active_support/core_ext/object/json.rb:36:in `encode'
...
/opt/zammad/app/controllers/application_controller/renders_models.rb:70:in `model_update_render_item'
/opt/zammad/app/controllers/application_controller/renders_models.rb:66:in `model_update_render'
/opt/zammad/app/controllers/settings_controller.rb:31:in `update'

والذي يشير بشكل أساسي إلى وجود أحرف مشفرة بشكل خاص في إعدادات LDAP والتي سيتم تخزينها / تخزينها. أستطيع أن أرى هؤلاء في السجل أيضًا.

أعتقد أن هذا يكفي لإعادة إظهار المشكلة. شكرا لدعمك حتى الآن. سنصلح المشكلة.

يرجى ملاحظة أن تكامل Exchange يتأثر أيضًا: # 2152

مرحبًا @ e311 ،

لقد بحثنا في هذه المشكلة ونحن واثقون تمامًا من أننا نفهم ما يحدث ، لكننا نحتاج إلى طلب مساعدتك مرة أخرى لنكون متأكدين تمامًا.

الخطوة 1: تأكد من سبب الخطأ

جرب السطر التالي في جهازك ، في دليل Zammad. إذا كانت شكوكنا صحيحة ، فيجب أن تفشل (_على سبيل المثال ، _ تظهر خطأ وتعرض التتبع):

$ rails r "puts Setting.get('ldap_config').to_json"

إذا رأيت تتبعًا لنفس Encoding::UndefinedConversionError الذي حصلت عليه في تقرير الخطأ الأولي ، فهذا رائع - في الخطوة 2! إذا لم يكن الأمر كذلك ، فالرجاء تأكيد أنك لم تقم بإعادة تعيين قاعدة البيانات أو تغيير تكوين LDAP منذ آخر مرة حدث فيها هذا الخطأ. إذا كنت لا تزال لا تتلقى خطأ ، فيرجى إخبارنا حتى نتمكن من متابعة التحقيق.

الخطوة الثانية: أرسل لنا آخر جزء من المعلومات المهمة

قم بتشغيل الأمر التالي في جهازك الطرفي:

$ rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

ثم أرسل الملف الناتج ( zammad_2140_debug_output.txt ) إلى [email protected]. تأكد من ذكر أن الرسالة تخص Thorsten Eckel ، وللخطأ رقم 2140.

مع هذا ، يجب أن نكون قادرين على الحصول على إصلاح يعمل على الفور.

شكرا مرة أخرى على مساعدتك!

هذا هو أول هجوم

serveradmin @ support : / opt / zammad $ rails "يضع Setting.get ('ldap_config'). to_json"
Traceback (آخر مكالمة أخيرة):
4: من bin / rails: 3 : في <main>'         3: from bin/rails:3:in required_relative '
2: from /opt/zammad/config/boot.rb:3:in <top (required)>'         1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in يتطلب '
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in "تتطلب": لا يمكن تحميل مثل هذا الملف - التجميع / الإعداد (LoadError)

Gesendet: مونتاج ، 06. أغسطس 2018 الساعة 11:53 Uhr
فون: "Ryan Lue" [email protected]
ج: zammad / zammad [email protected]
نسخة إلى: e311 [email protected] ، أذكر [email protected]
Betreff: Re: [zammad / zammad] LDAP / Exchange UTF-8 Status Code 500 (# 2140)

مرحبًا @ e311 ،

لقد بحثنا في هذه المشكلة ونحن واثقون تمامًا من أننا نفهم ما يحدث ، لكننا نحتاج إلى طلب مساعدتك مرة أخرى لنكون متأكدين تمامًا.

الخطوة 1: تأكد من سبب الخطأ

جرب السطر التالي في جهازك ، في دليل Zammad. إذا كانت شكوكنا صحيحة ، فيجب أن تفشل (على سبيل المثال ، رفع خطأ وإظهار التتبع):

$ rails r "يضع Setting.get ('ldap_config'). to_json"

إذا رأيت تتبعًا لنفس خطأ Encoding :: UndefinedConversion الذي تلقيته في تقرير الخطأ الأولي ، فهذا رائع - في الخطوة 2! إذا لم يكن الأمر كذلك ، فالرجاء تأكيد أنك لم تقم بإعادة تعيين قاعدة البيانات أو تغيير تكوين LDAP منذ آخر مرة حدث فيها هذا الخطأ. إذا كنت لا تزال لا تتلقى خطأ ، فيرجى إخبارنا حتى نتمكن من متابعة التحقيق.

الخطوة الثانية: أرسل لنا آخر جزء من المعلومات المهمة

قم بتشغيل الأمر التالي في جهازك الطرفي:

$ rails r "pp Setting.get ('ldap_config'). باستثناء ('bind_pw')"> zammad_2140_debug_output.txt

ثم أرسل الملف الناتج (zammad_2140_debug_output.txt) إلى [email protected]. تأكد من ذكر أن الرسالة تخص Thorsten Eckel ، وللخطأ رقم 2140.

مع هذا ، يجب أن نكون قادرين على الحصول على إصلاح يعمل على الفور.

شكرا مرة أخرى على مساعدتك!

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو اعرضها على GitHub ، أو قم بكتم صوت الموضوع.

rails r "pp Setting.get ('ldap_config'). باستثناء ('bind_pw')"> zammad_2140_debug_output.txt
إنتاج ملف emty (لا يمكنني التحميل لأنه emty)

befehl
output

مرحبًا @ e311 - الرجاء تجربة ما يلي:

zammad run rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

أو:

bundle exec rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

ولكن يجب أن يكون السطر الأول.

أحاول الأمر الأول:
مثل "Serveradmin" مع sudo أو مع sudo
image
لم يتم تثبيت Bundel الخاص بي؟
image

@ e311 ، هذا غريب جدًا. دعنا نتجاهل الأمر الثاني ( bundle exec rails ... ) في الوقت الحالي - لا أعتقد أن هذا هو المسار الصحيح هنا. هل يمكنك محاولة نسخ ملف السجل احتياطيًا وإنشاء ملف جديد فارغ؟

/opt/zammad:# gzip production.log
/opt/zammad:# mv production.log.gz production.log.15.gz
/opt/zammad:# touch production.log
/opt/zammad:# chown zammad.zammad production.log
/opt/zammad:# chmod 0644 production.log
/opt/zammad:# zammad run rails r "pp Setting.get('ldap_config').except('bind_pw')" > zammad_2140_debug_output.txt

نشكرك على كل مساعدتك في حل هذه المشكلة معنا.

rlue قمنا @ e311 .

يحتوي السجل على حقوق وصول جيدة تمامًا ، لقد تحققت من ذلك مرة أخرى.
سأرسل لك إخراج ldap-config في معظم الأحوال ، في حال لم يكن لديك بعد.

عفوًا ، لقد أرسلت لي السجل تمامًا في بداية يوم أمس. لا أعرف كيف فاتني!

@ e311 ، لم أشاهد ما كنت أتوقع رؤيته في إخراج التصحيح الخاص بك. الآن بعد أن تمكنتMrGeneration من مساعدتك في تشغيل أوامر zammad run rails r ... الخاصة بك ، هل يمكنك تجربة ما يلي مرة أخرى وإخباري ما إذا كانت هذه المشكلة ترفع قيمة Encoding::UndefinedConversionError التي تتعلق بهذه المشكلة؟

$ rails r "puts Setting.get('ldap_config').to_json"

تلقيت الرسالة "إصدار Ruby الخاص بك هو 2.5.1 ، لكن ملف Gemfile الخاص بك هو 2.4.4"
أنا آسف لن ينجح الأمر (أحاول كل الأفكار التي يقولها لي Google)

روبي الخاص بك وإصدار Elasticsearch الخاص بك غير متوافقين مع Zammad.
استخدم Ruby 2.4.4 و Elasticsearch حتى 5.6.

@ e311 آسف في الواقع ، خطأي تماما. نسيت إضافة zammad r مرة أخرى. -_- '

قصدت

$ zammad run rails r "puts Setting.get('ldap_config').to_json"

هذه هي الرسالة:

Neues Textdokument (3) .txt

لذا كان ناتج الأمر الأخير هو بالضبط ما كنت أتوقعه. باختصار ، يبدو أن بعض سمات المستخدم على خادم LDAP تحتوي على قيم بيانات ثنائية. يحاول Zammad تحويل هذه السلاسل إلى سلاسل ثم تمريرها من الواجهة الخلفية إلى الواجهة الأمامية ، ولكن نظرًا لأنها ليست سلاسل في الواقع ، فإننا نواجه بعض مشكلات الترميز / التحويل.

بالطبع ، نظرًا لأنه لا يمكنني الاتصال بخادم LDAP ، لا يمكنني التأكد بنسبة 100٪ من أن الإصلاح سيعمل حتى تجربه لنا. لذا ، أود أن أطلب مساعدتك في نقطتين أخريين:

  1. في المرة الأخيرة التي طلبت فيها تشغيل بعض الأوامر وإرسال الإخراج إلينا بالبريد الإلكتروني (الأربعاء الماضي) ، كانت الأوامر التي قدمتها لك غير صحيحة تمامًا ، ولم تعطنا المعلومات التي نحتاجها بالضبط. إليك نص برمجي يجب أن يكون صحيحًا هذه المرة (قم بالتنزيل هنا ):

    # Place this script in your Zammad directory and run it with
    #
    #     $ zammad run rails r 2140_bug_report.rb
    #
    # It should create a file named 2140_bug_report.txt.
    # Please send this file to [email protected], and mention that it's for Ryan.
    
    class Hash
     def deep_values
       values.map { |v| v.try(:deep_values) || v }.flatten
     end
    end
    
    string_values = Setting.get('ldap_config').except('bind_pw').deep_values.select { |v| v.is_a?(String) }
    
    File.binwrite('2140_bug_report.txt', Marshal.dump(string_values))
    

    آسف لجعلك تفعل ذلك مرتين.

  2. لقد كتبت تصحيحًا أعتقد أنه يجب أن يحل المشكلة. بشكل أساسي ، في أي وقت يواجه فيه قيمة بيانات ثنائية في مزامنة LDAP ، فإنه يتخطى ذلك بدلاً من محاولة حفظها كسلسلة.

    أود أن أؤكد أن الإصلاح يعمل على جهازك قبل دمج هذه التغييرات في قاعدة التعليمات البرمجية الرئيسية. هذه نسخة تم إصلاحها من الأخطاء لملف lib/ldap/user.rb .

    قم بتنزيله وانسخه إلى /opt/zammad/lib/ldap/user.rb ، ثم أعد تشغيل Zammad (مهم!) وقم بتشغيل معالج تكوين LDAP بالكامل مرة أخرى. نظرًا لأن لديك بالفعل تهيئة LDAP ، فهذا يعني أنه سيتعين عليك النقر فوق الزر "تغيير" في أسفل اللوحة:

    screenshot_20180814_201507

إذا كانت الخطوة الثانية لا تزال لا تصلحها لك ، فالرجاء تشغيل البرنامج النصي من الخطوة 1 مرة أخرى ، وتأكد من إرسال كلا الملفين إلينا.

شكرا مرة أخرى لمساعدتكم وصبركم!

أعيد تشغيل نظام الفتحة ، لكن لا يمكنني الضغط على زر التغيير.

image

قبل التصحيح
2140_bug_report (الخطوة 1) .txt

بعد التصحيح
2140_bug_report (الخطوة 2) .txt

أنا أيضًا جرب تكوين LDAP الجديد. أقوم باستعادة النظام قبل LDAP أسيوط. لكن ليس نفس النتيجة.

لقد تحقق من المستوى الوظيفي للمجال. في عام 2003 يمكن أن تكون هذه هي المشكلة

أعيد تشغيل نظام الفتحة ، لكن لا يمكنني الضغط على زر التغيير.

شكرا لتوضيح هذا. لم أفهم نطاق المشكلة أصلاً.

أنا أيضًا جرب تكوين LDAP الجديد. أقوم باستعادة النظام قبل LDAP أسيوط. لكن ليس نفس النتيجة.

هل تقصد أنك استعدت النظام إلى ما قبل LDAP conf ، وتم تشغيله بنجاح عبر المعالج بأكمله ، وما زلت ينتهي الأمر بنفس المشكلة؟ أو هل تقصد أنك حاولت استعادة النظام إلى ما قبل LDAP conf ، لكنك ما زلت تتلقى هذا الخطأ ولا يمكنك الوصول إلى المعالج؟

إذا كان هذا هو السابق ، فإن التصحيح لا يزال بحاجة إلى مزيد من العمل ؛ يجب أن أحصل على إصلاح لك غدا. إذا كان هذا هو الأخير ، فيمكنك محاولة إعادة تعيين تهيئة LDAP باستخدام

$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

(يمكنك ترك الجزء RAILS_ENV=production إذا كنت تفعل ذلك في بيئة تطوير.)

لقد قمت باستعادة نسخة احتياطية ، تم إنشاء النسخة الاحتياطية قبل أن أبدأ تكوين LDAP لأول مرة.

أحاول إعادة ضبط LDAP مع
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
أنا لا "إعادة تعيين" أسيوط ، فإنه لا يزال يعمل.
يبدو الآن أن النظام بأكمله يعمل ، بدون رسالة خطأ

(بدون LDAP)

حسنًا ، أنت تقول:

  1. زماد يعمل ،
  2. ليس لديك حاليًا مزامنة LDAP مهيأة ، و
  3. لم تعد تتلقى رسالة خطأ على صفحة مزامنة LDAP؟

(لتأكيد النقطة 2 ، يمكنك تشغيل RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')" ، والتي يجب أن تطبع {} إلى وحدة التحكم.)


إذا كان كل ما سبق صحيحًا ، وقمت بنسخ الإصدار المصحح من lib/ldap/user.rb الذي قمت بربطه أعلاه ، هل يمكنك محاولة إعداد مزامنة LDAP مرة أخرى ، وإخباري إذا كنت لا تزال تواجه نفس المشكلة؟

أو إذا كنت قد أسأت الفهم ، فيرجى إبلاغي بالموقف.

شكرا.

آسف على الرد المتأخر. نعم كل شيء صحيح. بعد تكوين LDAP مرة أخرى ، كان لدي نفس الخطأ مرة أخرى.

rlue - كما ذكر @ e311 بالفعل ، لا يزال هناك خطأ ما: https://community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/21

لمعلوماتك: لدي نفس المشكلة ولم يعمل user.rb المصحح من أجلي أيضًا.
شكرا لعملكم مقدما

كل شخص لا يزال لديه المشكلة بعد تغيير الملف وإعادة تشغيل التطبيق ، يرجى تقديم الخطأ (بما في ذلك التتبع الخلفي) من ملف log/production.log الخاص بك. شكرا!

@ e311 و tbeitter وأي شخص آخر يواجه هذه المشكلة حاليًا - لدي _عند آخر_ برنامج تصحيح أخطاء أريدك أن

ضعه في دليل zammad ثم قم بتشغيله

$ zammad run rails r 2140_improved_bug_report.rb

ستتم مطالبتك بعنوان URL لخادم LDAP وبيانات اعتماد تسجيل الدخول ، ثم سينشئ البرنامج النصي ملفًا يسمى 2140_debug_log.txt . يحتوي هذا الملف على عينة من سمات المستخدم من خادم LDAP ، لذا إذا كان ذلك يعني أي شيء حساس ، فلا تنشره علنًا . بدلاً من ذلك ، أرسله إلى [email protected] ، واذكر أنه لـ Ryan.

شكرًا لكم جميعًا على سعة صدركم المستمرة ونحن نعمل على حل هذا الخطأ.

مرحبا،
إذا حاولت تشغيل البرنامج النصي الجديد ، فسأحصل على هذا (LDAP قيد التشغيل) لم يتم إنشاء أي ملف.

serveradmin<strong i="7">@support</strong>:/opt/zammad$ sudo zammad run rails r 2140_improved_bug_report.rb
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:34:in `load': 2140_improved_bug_report.rb:77: invalid multibyte char (UTF-8) (SyntaxError)
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:34:in `perform'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/command/base.rb:63:in `perform'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/command.rb:44:in `invoke'
        from /opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands.rb:16:in `<top (required)>'
        from /opt/zammad/bin/rails:4:in `require'
        from /opt/zammad/bin/rails:4:in `<main>'
serveradmin<strong i="8">@support</strong>:/opt/zammad$

الإنتاج

لديك أيضًا هذا الخطأ ldap ... (تثبيت ubuntu 16.04 من خلال الريبو)

root<strong i="6">@zammad01</strong>:/opt/zammad# zammad run rails r 2140_improved_bug_report.rb
Please specify a valid ruby command or the path of a script to run.
Run 'bin/rails runner -h' for help.

/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:37: trailing `_' in number
2140_improved_bug_report.rb
     ^
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/railties-5.1.5/lib/rails/commands/runner/runner_command.rb:37: syntax error, unexpected tIDENTIFIER, expecting end-of-input
2140_improved_bug_report.rb

@ redbear-ger ، يُرجى التأكد من أن 2140_improved_bug_report.rb موجود في دليلك /opt/zammad .

@ e311 يصيح ، هذا خطأ غريب.

لقد قمت بتعديل البرنامج النصي عن طريق إزالة بعض الأحرف متعددة البايت غير الضرورية من إخراج وحدة التحكم. يمكنك إعادة تنزيل البرنامج النصي والمحاولة مرة أخرى ، أو ببساطة تغيير علامات الاقتباس الذكية في السطر 77 إلى علامات اقتباس عادية:

# replace “#{default_base_dn}” with '#{default_base_dn}'
printf "Base DN (leave blank for default '#{default_base_dn}'): "

لست متأكدًا بنسبة 100٪ أن هذا سيصلحها ، لكن لدي حدس.

rlue ، لا 2140_improved_bug_report.rb in / opt / zammad

راجع للشغل: بمجرد أن أحذف تهيئة LDAP (RAILS_ENV = إنتاج zammad تشغيل القضبان r "Setting.set ('ldap_config'، {})") ، تختفي المشكلة.

@ redbear-ger شكرا لملاحظاتك السريعة ؛ يرجى تنزيل البرنامج النصي لتقرير الخطأ ووضعه في /opt/zammad وحاول مرة أخرى.

حتى إذا اختفت المشكلة بنسبة 100٪ الآن ، فسيكون من المفيد جدًا الحصول على بيانات العينة الخاصة بك حتى نتمكن من إنشاء اختبارات للتأكد من عدم حدوث ذلك مرة أخرى.

انتهى الخطأ ولكن أيضًا تكامل ldap ؛)
سيتم تنزيل البرنامج النصي للتقرير الليلة

مرحبا،
لدي نفس المشكلة وجربت جميع الاقتراحات أعلاه. لا أحد منهم يحل المشكلة.
لذلك قررت إعادة إنتاج المشكلة على نظام مطور لإعطائك ملف تصحيح أخطاء دون تقديم بيانات حساسة.

أعادني البرنامج النصي 2140_improved_bug_report.rb الملف النصي التالي:
2140_debug_log.txt

شكرا!

شكراhublux! لسبب ما ، هناك مجموعة من الأماكن في الملف حيث يتم استبدال أحرف التحكم (على سبيل المثال ، _ ^D ) بالقيراط الحرفي ( ^ ) متبوعًا بحرف حرفي ( D ) ، وهذا يسبب أخطاء عند محاولة تحليل الملف. هل فعلت أي شيء للملف قبل تحميله بأي فرصة؟ (لنفترض ، فتحه في محرر نصوص ، ثم إغلاقه ، والنقر على "حفظ التغييرات"؟) أو هل تفترض أن GitHub ربما قام ببعض المعالجة عليه عند تحميله؟

للتأكد من تنسيق الملف الأصلي بشكل صحيح على جهازك ، يرجى تجربة الأمر التالي في دليل Zammad الخاص بك ، والتحقق من الإخراج:

$ zammad run rails r "puts Marshal.load(File.read('2140_debug_log.txt')).first.inspect"

# should print the following:
["dn", "CN=Exchange Online-ApplicationAccount,OU=SBSUsers,OU=Users,OU=MyBusiness,DC=ebusiness,DC=local"]

إذا كان كل هذا يعمل كما هو متوقع ، فيرجى إرسال الملف بالبريد الإلكتروني إلى [email protected].

مرحبا،
شكرا لك على الرد.

في الواقع ، يبدو أن بعض أفعالي قد غيرت الملف عندما نسخت المحتوى منه.
التحقق من ذلك مع القط ، يبدو مختلفًا بعض الشيء.

grafik

لقد جربت الأمر وحصلت على الإخراج الصحيح.
grafik
لقد أرسلت الملف إلى دعم zammad.

هنا أيضًا الملف الجديد
2140_debug_log.txt

hublux ، شكرًا مرة أخرى على ملاحظاتك السريعة. أعتقد أن هناك خطأ ما في البرنامج النصي لتصحيح الأخطاء الذي كتبته ، لأن هذا الملف الجديد ليس صحيحًا تمامًا أيضًا (فهو يفتقد الكثير من البيانات - 4 كيلوبايت ، مقارنة بسجل تصحيح الأخطاء 16 كيلوبايت الذي أرسلته في الأصل).

لقد قمت منذ ذلك الحين بتصحيح البرنامج النصي لتصحيح الأخطاء (على أمل) جعل الملف 2140_debug_log.txt أكثر قوة وأمانًا للإرسال دون مشاكل التشفير الغريبة هذه. يرجى تنزيله مرة أخرى وحاول مرة أخرى. (لا تتردد في تضمينه في ردك في هذا الموضوع ، إذا كان ذلك أكثر ملاءمة لك.)

وإذا كنت مهتمًا حقًا بمعرفة الخطأ في نص التصحيح ...

استغرق الأمر في الأصل تجزئة روبي ، ونظمها ، ثم كتب البيانات المنظمة إلى ملف "نصي" ثنائي (أقل ترميزًا). لا أعرف حقًا سبب تلف الملفات النصية الثنائية عند نقلها من جهاز إلى آخر ، ولكن هذا ما نلاحظه هنا.

يأخذ هذا الإصلاح البيانات المنظمة ويقوم بتشفيرها بالقاعدة 64 قبل حفظها في ملف نصي عادي بتنسيق Unicode. هذا من شأنه أن يجعل الإرسال بدون فساد أكثر أمانًا ، لأن ما هو أكثر عالمية من Unicode؟

2140_debug_log.txt
هناك لديك الإخراج مع البرنامج النصي الجديد
مع تحياتي!

مرحبا جميعا،
تتناغم أيضًا ، حيث تؤثر المشكلة نفسها علي أيضًا - حتى بعد التحديث إلى lib/ldap/user.rb

2140_debug_log.txt

بدأت أيضًا في البحث قليلاً في الهاش ldap_config وبدأت في التخلص من جميع محتويات !binary . لكن اتضح أنه على الرغم من أن لدي 4 من هؤلاء ، إلا أن اثنين فقط مشدودان بالتشفير.

اضطررت إلى إزالة usersmimecertificate و msexchmailboxsecuritydescriptor .

الاثنان الآخران ، msexchmasteraccountsid و securityprotocol لم يتسببوا في أي مشكلة.

مرحبا،

فقط للتوضيح ، لست متأكدًا مما إذا كان هذا واضحًا لأنني لم أر أي شخص يذكر هذا.
كاتصال LDAP أستخدم Active Directory مع اللغة الألمانية كلغة نظام. لذلك قمت بتثبيت نظام جديد ومجال منفصل. الاختلاف الوحيد عن النظام السابق الذي حدثت فيه المشكلة هو أنه في النظام الجديد ، يتم تعيين اللغة على اللغة الإنجليزية الأمريكية بدلاً من الألمانية. مع هذا الإعداد ، لا يوجد خطأ يمكن العثور عليه ، كل شيء يعمل كما هو متوقع. لذلك أخذت نظام zammad الأصلي الخاص بي حيث واجهت المشكلة وربطته بالمجال المثبت حديثًا وذهبت المشكلة.

التشغيل التالي على إعداد العمل يعطيني الإخراج التالي:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

workingsetup.txt

إذا قمت بتشغيل الأمر للتحقق من تكوين ldap مع الإعداد الأصلي ، فإنه يفشل ويتلقى الخطأ التالي:

grafik

آمل أن يساعدك هذا.
يعتبر!

شكراhublux! لقد حصلنا على إصلاح في الأعمال بفضل مدخلاتك ؛ يجب دمجه في develop قريبًا!

screenshot_1

بعد التحديث لا تزال تحصل على نفس الخطأ. (ولكن بدون إعداد Exchange ، فقط LDAP-Sync)

مرحبًا tidet ، شكرًا على التعليقات. يرجى اتباع التعليمات الواردة في هذا التعليق ؛ ستقطع بياناتك النموذجية شوطًا طويلاً في مساعدتنا في حل هذه المشكلة بشكل قاطع.

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

احذف التكوين القديم بالأمر التالي:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • وقف خدمة زماد

  • تحديث zammad

  • ابدأ خدمة zammad مرة أخرى وحاول إعادة تكوين اتصال ldap

بعد هذا لم أواجه أي مشكلة.

يعتبر

rlue هل يجب أن أجرب الحل أعلاه أم أبقى عند الخطأ الحالي لأغراض التصحيح؟
خرج البريد الإلكتروني مع ملف السجل لدعم @

tidet ، الآن بعد أن أصبح لدينا نموذج بيانات LDAP ، لا تتردد في المضي قدمًا وتجربة ما سبق. لقد وجدت قيمة واحدة ربما لا تزال تسبب مشاكل على أي حال ، لكنها على الأرجح جيدة. وسواء أكانت الاتجاهات المذكورة أعلاه تصلح لك أم لا ، فسيكون هناك تصحيح آخر في خط الأنابيب قادم في وقت لاحق اليوم.

تحرير: غيرت رأيي. نظرًا لأن الإصلاح يعمل من أجلك ، سأمتنع عن تعديل الكود وإضافة أي تعقيد غير ضروري حتى يتم كسره بالفعل لشخص ما.

hublux Fix يعمل معي أيضًا.

hublux ثابت كذلك

ما زلنا نواجه هذه المشكلة. لقد فعلت ذلك ، لقد كتبت

كنت في إجازة ، آسف على الرد المتأخر هنا وإذا فاتني أي شيء :)

مرحبًا tbeitter ،
إذا قمت بتشغيل هذا الأمر ، فهل تتلقى أي إخراج:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

إذا كان الأمر كذلك ، فتحقق من ذلك:
https://github.com/zammad/zammad/issues/2140#issuecomment -417605384

يعتبر

نعم ، يظهر لي خطأ مشابه لخطأك:

"\xC2" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)

أهلا،

لقد راجعت للتو نسخة زمّاد التي قمت بتحديثها هذا الصباح:
grafik
إنه يختلف عنك.

هل يمكنك المتابعة مرة أخرى بهذه الخطوات:

  • حذف تكوين LDAP
  • وقف خدمة زماد
  • تحديث zammad مرة أخرى
  • بدء خدمة زماد

يعتبر

hublux التي عملت بالنسبة لي! شكرا!

صيحة كبيرة لـ hublux على حل مشكلة المستخدمين الآخرين. يتضمن e07f41ed الآن ترحيل قاعدة البيانات الذي يجب أن يقوم تلقائيًا بمسح تكوينات LDAP الخاطئة بحيث لا يضطر أي مستخدم يواجه هذه المشكلة في المستقبل إلى التعامل مع هذه الخطوات اليدوية.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات