Привет! Спасибо за сообщение о проблеме. Прежде чем создавать проблему, убедитесь в следующем - спасибо! 🤓 С 15 ноября мы обрабатываем все запросы, кроме реальных ошибок, на нашем форуме сообщества. Полное объяснение: https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 Пожалуйста, публикуйте: - Запросы функций - Вопросы разработки - Технические вопросы на доске -> https: / /community.zammad.org! Если вы думаете, что столкнулись с ошибкой, продолжайте: - Найдите существующие проблемы и CHANGELOG.md для вашей проблемы - возможно, уже существует решение - Убедитесь, что вы используете последнюю версию Zammad, если возможно - Добавьте файл `log / production. log из вашей системы. Внимание: убедитесь, что в нем нет конфиденциальных данных! - Пожалуйста, напишите о проблеме на английском языке - Не удаляйте шаблон - в противном случае мы закроем проблему без дальнейших комментариев - Задавайте вопросы о конфигурации и использовании Zammad в нашем списке рассылки. См .: https://zammad.org/participate Примечание: мы всегда делаем все возможное. К сожалению, иногда запросов бывает слишком много, и мы не можем обработать все сразу. Если вы хотите расставить приоритеты / обострить проблему, вы можете сделать это с помощью контракта на поддержку (см. Https://zammad.com/pricing#selfhosted). * Верхний текстовый блок будет автоматически удален, когда вы отправите сообщение о проблеме *
Кадр LDPA отображается (в меню конфигурации Система -> Интеграция -> LDAP) без ошибок
*
Кадр LDAP не отображается. Фрейм остается пустым с сообщением об ошибке
Также API и мониторинг
*
StatusCode 500
{"error": "\" \ xC5 \ "из ASCII-8BIT в UTF-8"}
Только Настроить LDAP.
*
Моя конфигурация:
адаптер: postgresql
база данных: zammad
бассейн: 50
тайм-аут: 5000
кодировка: utf8
имя пользователя: zammad
журнал / 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
Да, я уверен, что это ошибка, а не запрос функции или общий вопрос.
Привет @ e311 - не могли бы вы также предоставить верхнюю часть журнала? Здесь печатается необходимая информация, которая в настоящее время отсутствует. Дополнительно: Не могли бы вы описать шаги, которые вы выполнили для решения проблемы? В настоящее время это не ясно. Спасибо!
Привет,
Я попробую.
Я открываю (в админке -> система -> Integarion) LDAP. Начинаю настройку Все нормально.
Пароль пользователя DN домена.
Я использовал стандартное отображение.
Экран конфигурации LDAP выглядит нормально.
Я нажимаю сейф. И я получаю сообщение об ошибке.
После перезагрузки страницы фрейм пуст.
и вот полный файл журнала:
Привет @ 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!
Мы занимаемся этой проблемой и уверены, что понимаем, что происходит, но нам нужно снова попросить вас о помощи, чтобы быть полностью уверенными.
Попробуйте ввести следующую строку в свой терминал в каталоге 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]. Не забудьте упомянуть, что это сообщение предназначено для Торстена Экеля и для ошибки № 2140.
Благодаря этому мы сразу же сможем исправить это.
Еще раз спасибо за вашу помощь!
Это первый массаж
serveradmin @ support : / opt / zammad $ rails r "помещает Setting.get ('ldap_config'). to_json"
Отслеживание (последний вызов последний):
4: из bin / rails: 3 : в <main>'
3: from bin/rails:3:in
require_relative '
2: из /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
require '
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require ': невозможно загрузить такой файл - бандлер / настройка (LoadError)
Гесендет: Монтэг, 06 августа 2018 г. 11:53 Uhr
Фон: "Райан Лю" [email protected]
An: zammad / zammad [email protected]
Копия: e311 [email protected] , Mention упоминание@noreply.github.com
Betreff: Re: [zammad / zammad] Код состояния LDAP / Exchange UTF-8 500 (# 2140)
Привет @ e311!
Мы занимаемся этой проблемой и уверены, что понимаем, что происходит, но нам нужно снова попросить вас о помощи, чтобы быть полностью уверенными.
Шаг 1. Подтвердите причину ошибки
Попробуйте ввести следующую строку в свой терминал в каталоге Zammad. Если наши подозрения верны, тогда он должен потерпеть неудачу (т.е. вызвать ошибку и показать обратную трассировку):
$ rails r "помещает Setting.get ('ldap_config'). to_json"
Если вы видели обратную трассировку для той же ошибки Encoding :: UndefinedConversionError, которую вы получили в первоначальном отчете об ошибке, тогда отлично - переходите к Шагу 2! Если нет, подтвердите, что вы не сбрасывали свою базу данных и не изменяли конфигурацию LDAP с момента последнего появления этой ошибки. Если вы по-прежнему не получаете сообщение об ошибке, сообщите нам об этом, и мы продолжим расследование.
Шаг 2. Отправьте нам последнюю важную информацию
Выполните следующую команду в своем терминале:
$ rails r "pp Setting.get ('ldap_config'). except ('bind_pw')"> zammad_2140_debug_output.txt
Затем отправьте полученный файл (zammad_2140_debug_output.txt) на адрес [email protected]. Не забудьте упомянуть, что это сообщение предназначено для Торстена Экеля и для ошибки № 2140.
Благодаря этому мы сразу же сможем исправить это.
Еще раз спасибо за вашу помощь!
-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub или отключите чат.
rails r "pp Setting.get ('ldap_config'). except ('bind_pw')"> zammad_2140_debug_output.txt
создать пустой файл (я не могу загрузить, потому что он пустой)
Привет @ 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
Бундель мой быть не установлен?
@ 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)
Ваша версия Ruby и Elasticsearch несовместима с Zammad.
Используйте Ruby 2.4.4 и Elasticsearch до 5.6.
@ e311 извини, это полностью моя вина. Снова забыл добавить zammad r
. -_- '
я имел в виду
$ zammad run rails r "puts Setting.get('ldap_config').to_json"
Вот сообщение:
Таким образом, результат последней команды оказался именно таким, как я ожидал. Подводя итог, похоже, что некоторые пользовательские атрибуты на вашем сервере LDAP имеют значения двоичных данных. Zammad пытается преобразовать их в строки, а затем передать их из бэкэнда во внешний интерфейс, но, поскольку на самом деле они не являются строками, мы сталкиваемся с некоторыми проблемами кодирования / преобразования.
Конечно, поскольку я не могу подключиться к вашему серверу LDAP, я не могу быть на 100% уверен, что исправление сработает, пока вы не попробуете его для нас. Итак, я хотел бы попросить вашей помощи еще по двум пунктам:
В прошлый раз, когда я просил вас выполнить несколько команд и отправить нам результат по электронной почте (в прошлую среду), команды, которые я вам дал, были не совсем правильными и не совсем давали нам необходимую информацию. Вот сценарий, который на этот раз должен все исправить ( скачать здесь ):
# 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))
Извините, что заставил вас сделать это дважды.
Я написал патч, который, как мне кажется, должен решить эту проблему. По сути, всякий раз, когда он встречает двоичное значение данных в синхронизации LDAP, он пропускает его, вместо того, чтобы пытаться сохранить его как строку.
Я хотел бы подтвердить, что исправление работает на вашем компьютере, прежде чем мы объединим эти изменения в основную кодовую базу. Вот исправленная версия файла lib/ldap/user.rb
.
Загрузите его и скопируйте в /opt/zammad/lib/ldap/user.rb
, затем перезапустите Zammad (важно!) И снова запустите весь мастер настройки LDAP. Поскольку у вас уже есть существующая конфигурация LDAP, это означает, что вам нужно будет нажать кнопку «Изменить» в нижней части панели:
Если шаг 2 по- прежнему не помогает, запустите сценарий из шага 1 еще раз и обязательно отправьте нам оба файла.
Еще раз спасибо за вашу помощь и терпение!
Я перезагружаю систему отверстий, но не могу нажать кнопку изменения.
перед патчем
2140_bug_report (Шаг1) .txt
после патча
2140_bug_report (Шаг 2) .txt
Я также попробую новую конфигурацию LDAP. Я восстанавливаю Систему перед конфигурированием LDAP. но результат тот же.
Я проверил функциональный уровень домена. Это 2003 год, может в этом проблема?
Я перезагружаю систему отверстий, но не могу нажать кнопку изменения.
Спасибо за разъяснение. Изначально я не понимал масштаб проблемы.
Я также попробую новую конфигурацию LDAP. Я восстанавливаю Систему перед конфигурированием LDAP. но результат тот же.
Вы имеете в виду, что вы восстановили систему до конфигурации до LDAP conf, успешно выполнили весь мастер и все еще столкнулись с той же проблемой? Или вы имеете в виду, что вы пытались восстановить систему до конфигурации LDAP, но вы по-прежнему получаете эту ошибку и не можете получить доступ к мастеру?
Если первое, то над патчем все еще нужно доработать; Я должен приготовить для тебя завтра. Если последнее, то вы можете попробовать сбросить конфигурацию 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)
Итак, вы говорите:
(Чтобы подтвердить пункт 2, вы можете запустить RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')"
, который должен вывести {}
на консоль.)
Если все вышеперечисленное верно, и вы скопировали исправленную версию lib/ldap/user.rb
которую я ссылался выше, можете ли вы попытаться настроить синхронизацию LDAP еще раз и сообщить мне, если вы все еще сталкиваетесь с та же проблема?
Или, если я неправильно понял, дайте мне знать, в какой ситуации.
Спасибо.
@rlue - JFI: взгляните на https://community.zammad.org/t/unable-to-access-ldap-in-integrations-statuscode-500/1116/5 😍
Извините за задержку с ответом. Да все правильно. После повторной настройки 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] и
Спасибо всем за ваше терпение в работе над этой ошибкой.
Привет,
Если я попытаюсь запустить новый скрипт, я получаю это (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 в / opt / zammad
Кстати: как только я удалю конфигурацию LDAP (RAILS_ENV = production zammad run rails 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].
Привет,
Спасибо за ваш ответ.
Действительно, похоже, что некоторые из моих действий действительно изменили файл, когда я скопировал из него содержимое.
проверив это с кошкой, это выглядит немного иначе.
Я попробовал команду и получил правильный результат.
Я отправил файл в службу поддержки zammad.
Вот и новый файл
2140_debug_log.txt
@hublux , еще раз спасибо за быстрый отзыв. Я думаю, что что-то не так с написанным мной сценарием отладки, потому что этот новый файл тоже не совсем правильный (в нем отсутствует много данных - 4 КБ по сравнению с изначально отправленным вами журналом отладки 16 КБ).
С тех пор я исправил сценарий отладки, чтобы (надеюсь) сделать файл 2140_debug_log.txt
более надежным и безопасным для передачи без этих странных проблем с кодированием. Пожалуйста, скачайте его еще раз и попробуйте еще раз. (Не стесняйтесь включить его в свой ответ в этой ветке, если вам так удобнее.)
Первоначально он взял хеш Ruby, упорядочил его , а затем записал упорядоченные данные в двоичный (без кодирования) «текстовый» файл. Я действительно не знаю, почему двоичные текстовые файлы повреждаются при передаче с одной машины на другую, но это то, что мы наблюдаем здесь.
Это исправление берет упорядоченные данные и кодирует их в формате base-64 перед сохранением в обычный текстовый файл Unicode. Это должно сделать его более безопасным для передачи без искажений, потому что что может быть универсальнее Юникода?
2140_debug_log.txt
Вот и результат с новым скриптом
С уважением!
Привет всем,
также вмешивается, так как та же проблема влияет и на меня - даже после обновления до нового lib/ldap/user.rb
Я также начал немного копаться в ldap_config
-hash и начал избавляться от всего содержимого !binary
. Но оказалось, что хотя у меня их было 4, с кодировкой прикрутили только два.
Мне пришлось удалить usersmimecertificate
и msexchmailboxsecuritydescriptor
.
Два других, msexchmasteraccountsid
и securityprotocol
, не вызывали никаких проблем.
Привет,
Просто чтобы уточнить, я не уверен, очевидно ли это, поскольку я не видел, чтобы кто-то упоминал об этом.
В качестве LDAP-соединения я использую Active Directory с немецким языком в качестве системного языка. Итак, я установил новую систему и отдельный домен. Единственное отличие от предыдущей системы, в которой возникла проблема, состоит в том, что в новой системе язык установлен на американский английский вместо немецкого. При такой настройке ошибок не обнаружено, все работает как положено. Итак, я взял свою оригинальную систему zammad, в которой у меня была проблема, и подключил ее к недавно установленному домену, и проблема исчезла.
Выполнение следующих действий в рабочей настройке дает мне следующий результат:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"
Если я запускаю команду, чтобы проверить конфигурацию ldap с исходной настройкой, она не работает и появляется следующая ошибка:
Надеюсь, это тебе поможет.
С Уважением!
Спасибо @hublux! Благодаря вашему вкладу мы работаем над исправлением; он должен быть объединен с develop
ближайшее время!
После обновления все еще появляется та же ошибка. (Но без Exchange-настройки только LDAP-Sync)
Привет @tidet , спасибо за отзыв. Пожалуйста, следуйте инструкциям в этом комментарии ; Ваши образцы данных будут иметь большое значение, чтобы помочь нам окончательно решить эту проблему.
Привет,
Просто чтобы сообщить, что у меня снова возникла та же проблема, но старая конфигурация все еще существовала. Поэтому, если вы снова столкнетесь с этой проблемой, действуйте следующим образом.
Удалите старую конфигурацию с помощью следующей команды:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
остановить службу заммад
обновить заммад
снова запустите службу 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)
Привет,
Я только что проверил свою версию Заммада, которую обновил сегодня утром:
Он отличается от вашего.
Не могли бы вы выполнить следующие действия еще раз:
С Уважением
@hublux, который у меня сработал! Спасибо!
Большое спасибо @hublux за вашу помощь в
Самый полезный комментарий
Привет,
Просто чтобы сообщить, что у меня снова возникла та же проблема, но старая конфигурация все еще существовала. Поэтому, если вы снова столкнетесь с этой проблемой, действуйте следующим образом.
Удалите старую конфигурацию с помощью следующей команды:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
остановить службу заммад
обновить заммад
снова запустите службу zammad и попробуйте перенастроить соединение ldap
После этого у меня не возникло никаких проблем.
С Уважением