Zammad: Código de status 500 do LDAP / Exchange UTF-8

Criado em 24 jul. 2018  ·  59Comentários  ·  Fonte: zammad/zammad

Olá - obrigado por registrar um problema. Certifique-se das seguintes coisas antes de criar um problema - obrigado! 🤓 Desde 15 de novembro tratamos de todas as solicitações, exceto bugs reais, em nosso fórum da comunidade. Explicação completa: https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 Publique: - Solicitações de recursos - Perguntas de desenvolvimento - Perguntas técnicas no quadro -> https: / /community.zammad.org! Se você acha que encontrou um bug, continue: - Pesquise os problemas existentes e o CHANGELOG.md para o seu problema - já pode haver uma solução - Certifique-se de usar a versão mais recente do Zammad se possível - Adicione o `log / produção. arquivo de log do seu sistema. Atenção: Certifique-se de que não contém dados confidenciais! - Escreva o problema em inglês - Não remova o modelo - caso contrário, fecharemos o problema sem mais comentários - Faça perguntas sobre a configuração e o uso do Zammad em nossa lista de discussão. Veja: https://zammad.org/participate Nota: Sempre fazemos nosso melhor. Infelizmente, às vezes há muitas solicitações e não podemos lidar com tudo de uma vez. Se quiser priorizar / escalar seu problema, você pode fazer isso por meio de um contrato de suporte (consulte https://zammad.com/pricing#selfhosted). * O bloco de texto superior será removido automaticamente quando você enviar seu problema *

Infos:

  • Versão Zammad usada
  • Método de instalação (fonte, pacote, ..): DEP
  • Sistema operacional: ubuntu 18.04
  • Banco de dados + versão: psql (PostgreSQL) 10.4 (Ubuntu 10.4-0ubuntu0.18.04)
  • Versão do Elasticsearch
  • Navegador + versão:
    cromada

Comportamento esperado:

Quadro LDPA exibido (no menu de configuração Sistema -> Integração -> LDAP) sem erro
*

Comportamento real:

O quadro LDAP não é exibido. Quadro permanece vazio com mensagem de erro
Também API e monitoramento
2018-07-24 08_35_07-microsoft edge
*
StatusCode 500
{"erro": "\" \ xC5 \ "de ASCII-8BIT para UTF-8"}

Passos para reproduzir o comportamento:

apenas configure o LDAP.

*
Minha configuração:
adaptador: postgresql
banco de dados: zammad
piscina: 50
tempo limite: 5000
codificação: utf8
nome de usuário: 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

Sim, tenho certeza que isso é um bug e nenhuma solicitação de recurso ou uma questão geral.

LDAP bug import

Comentários muito úteis

Oi,
Só para informar que tive o mesmo problema novamente, mas a configuração antiga ainda existia. Portanto, proceda da seguinte forma se você tiver esse problema novamente.

Exclua a configuração antiga com o seguinte comando:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • pare o serviço zammad

  • atualizar zammad

  • inicie o serviço zammad novamente e tente reconfigurar a conexão ldap

Depois disso, não enfrentei nenhum problema.

Cumprimentos

Todos 59 comentários

Olá @ e311 - você poderia fornecer a parte superior do log também? É aqui que as informações necessárias são impressas e que estão faltando no momento. Além disso: você poderia descrever as etapas executadas para solucionar o problema? No momento, isso não está claro. Obrigado!

Oi,
Eu vou tentar isso.
Eu abro o (em admin -> sistema -> Integarion) LDAP. Eu inicio a configuração. Tudo bem.
Senha do usuário do DN do domínio.
3 ldap

Usei o mapeamento padrão.
4

A tela de configuração do LDAP parece boa.
6
Eu pressiono com segurança. E recebo uma mensagem de erro.
7

Depois de recarregar a página, o quadro está vazio.
2018-07-24 08_35_07-microsoft edge

e aqui está o arquivo de log completo:

log.txt

Olá @ e311 - obrigado pelo comentário abrangente! A linha interessante no log é esta:

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'

O que basicamente diz que há caracteres especialmente codificados nas configurações do LDAP que serão armazenados / armazenados. Também posso ver aqueles no log.

Acho que isso é o suficiente para reproduzir o problema. Obrigado pelo seu apoio até agora. Vamos consertar o problema.

Observe que a integração do Exchange também é afetada: # 2152

Olá @ e311 ,

Estamos investigando esse problema e temos certeza de que entendemos o que está acontecendo, mas precisamos pedir sua ajuda novamente para ter certeza absoluta.

Etapa 1: confirme a causa do bug

Tente a seguinte linha em seu terminal, no diretório Zammad. Se nossas suspeitas estiverem corretas, ele deve falhar (_ ou seja, _ gerar um erro e mostrar um rastreamento):

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

Se você viu um traceback para o mesmo Encoding::UndefinedConversionError que obteve no relatório de bug inicial, ótimo - para a Etapa 2! Caso contrário, confirme que você não reiniciou seu banco de dados ou alterou sua configuração LDAP desde a última vez que este bug ocorreu. Se ainda assim você não receber um erro, informe-nos para que possamos continuar investigando.

Etapa 2: envie-nos uma última informação crucial

Execute o seguinte comando em seu terminal:

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

Em seguida, envie o arquivo resultante ( zammad_2140_debug_output.txt ) para [email protected]. Certifique-se de mencionar que a mensagem é para Thorsten Eckel e para o bug # 2140.

Com isso, devemos conseguir fazer uma correção funcionar imediatamente.

Obrigado novamente por toda a sua ajuda!

Esta é a primeira massagem

serveradmin @ support : / opt / zammad $ rails r "puts Setting.get ('ldap_config'). to_json"
Traceback (última chamada mais recente):
4: de bin / trilhos: 3 : em <main>'         3: from bin/rails:3:in require_relative '
2: de /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 ': não é possível carregar esse arquivo - bundler / setup (LoadError)

Gesendet: Montag, 06. Agosto de 2018 hum 11:53 Uhr
Von: "Ryan Lue" [email protected]
An: zammad / zammad [email protected]
Cc: e311 [email protected] , Mencione a mençã[email protected]
Betreff: Re: [zammad / zammad] Código de status 500 do LDAP / Exchange UTF-8 (# 2140)

Olá @ e311 ,

Estamos investigando esse problema e temos certeza de que entendemos o que está acontecendo, mas precisamos pedir sua ajuda novamente para ter certeza absoluta.

Etapa 1: confirme a causa do bug

Tente a seguinte linha em seu terminal, no diretório Zammad. Se nossas suspeitas estiverem corretas, ele deve falhar (ou seja, gerar um erro e mostrar um rastreamento):

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

Se você viu um rastreamento para o mesmo Encoding :: UndefinedConversionError que obteve no relatório de bug inicial, ótimo - na Etapa 2! Caso contrário, confirme que você não reiniciou seu banco de dados ou alterou sua configuração LDAP desde a última vez que este bug ocorreu. Se ainda assim você não receber um erro, informe-nos para que possamos continuar investigando.

Etapa 2: envie-nos uma última informação crucial

Execute o seguinte comando em seu terminal:

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

Em seguida, envie o arquivo resultante (zammad_2140_debug_output.txt) para [email protected]. Certifique-se de mencionar que a mensagem é para Thorsten Eckel e para o bug # 2140.

Com isso, devemos conseguir fazer uma correção funcionar imediatamente.

Obrigado novamente por toda a sua ajuda!

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub ou ignore a conversa.

rails r "pp Setting.get ('ldap_config'). except ('bind_pw')"> zammad_2140_debug_output.txt
produzir um arquivo emty (não posso enviar porque está emty)

befehl
output

Olá @ e311 - Por favor, tente o seguinte:

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

OU:

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

mas deve ser a primeira linha.

Eu tento o primeiro comando:
O mesmo que "Serveradmin" com sudo ou sem sudo
image
O pacote pode não estar instalado?
image

@ e311 , isso é muito estranho. Vamos ignorar o segundo comando ( bundle exec rails ... ) por enquanto - não acho que seja o caminho certo aqui. Você poderia tentar fazer backup do arquivo de log e criar um novo vazio?

/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

Obrigado por toda a sua ajuda para resolver este problema conosco.

@rlue fizemos os comandos ontem com @ e311 .

O log tem direitos de acesso perfeitamente bons, verifiquei duas vezes.
Vou enviar a você a saída do ldap-config na maioria das vezes, caso você ainda não tenha.

Opa, você me enviou totalmente o log no início do dia de ontem. Não sei como perdi!

@ e311 , não vi o que esperava ver em sua saída de depuração. Agora que @MrGeneration foi capaz de ajudá-lo a fazer seus zammad run rails r ... comandos funcionarem, você poderia tentar o seguinte novamente e me dizer se ele está levantando Encoding::UndefinedConversionError qual esse problema se destina?

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

Recebo a mensagem "Sua versão do Ruby é 2.5.1, mas seu Gemfile especificou 2.4.4"
Lamento, mas não vai funcionar (tento todas as ideias que o Google me diz)

Seu Ruby e sua versão Elasticsearch não são compatíveis com Zammad.
Use Ruby 2.4.4 e Elasticsearch até 5.6.

@ e311 desculpe, na verdade, totalmente minha culpa. Esqueci de adicionar zammad r novamente. -_- '

eu quis dizer

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

Esta é a mensagem:

Neues Textdokument (3) .txt

Portanto, a saída do último comando foi exatamente o que eu esperava. Para resumir, parece que alguns dos atributos do usuário em seu servidor LDAP têm valores de dados binários. Zammad tenta convertê-los em strings e depois passá-los do backend para o frontend, mas como não são realmente strings, acabamos tendo alguns problemas de codificação / conversão.

Claro, como não consigo me conectar ao seu servidor LDAP, não posso ter 100% de certeza de que uma correção funcionará até que você tente para nós. Portanto, gostaria de pedir sua ajuda em mais dois pontos:

  1. A última vez que pedi que você executasse alguns comandos e nos enviasse a saída por e-mail (quarta-feira passada), os comandos que dei a você não estavam corretos e não forneceram exatamente as informações de que precisávamos. Aqui está um script que deve funcionar corretamente desta vez (faça o download aqui ):

    # 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))
    

    Desculpe obrigar você a fazer isso duas vezes.

  2. Eu escrevi um patch que acho que deve resolver o problema. Basicamente, sempre que encontra um valor de dados binários na sincronização do LDAP, ele o ignora em vez de tentar salvá-lo como uma string.

    Gostaria de confirmar se a correção funciona em sua máquina antes de mesclar essas alterações na base de código principal. Aqui está uma versão corrigida de bug do arquivo lib/ldap/user.rb .

    Baixe-o e copie-o para /opt/zammad/lib/ldap/user.rb , então reinicie o Zammad (importante!) E execute todo o assistente de configuração do LDAP novamente. Como você já tem uma configuração LDAP existente, isso significa que você terá que clicar no botão "Alterar" na parte inferior do painel:

    screenshot_20180814_201507

Se a Etapa 2 ainda não corrigir isso para você, execute o script da Etapa 1 novamente e certifique-se de nos enviar os dois arquivos.

Obrigado novamente por sua ajuda e sua paciência!

Reinicio o sistema de furos, mas não consigo apertar o botão de mudança.

image

antes do patch
2140_bug_report (Etapa 1) .txt

depois do patch
2140_bug_report (Etapa 2) .txt

Também tento uma nova configuração de LDAP. Eu restauro o sistema antes da conf. LDAP. mas é o mesmo resultado.

Verifiquei o nível funcional do domínio. É 2003, pode ser este o problema

Reinicio o sistema de furos, mas não consigo apertar o botão de mudança.

Obrigado por esclarecer isso. Eu não tinha entendido a extensão do problema, originalmente.

Também tento uma nova configuração de LDAP. Eu restauro o sistema antes da conf. LDAP. mas é o mesmo resultado.

Você quer dizer que restaurou o sistema antes da configuração do LDAP, executou todo o assistente com êxito e ainda acabou com o mesmo problema? Ou você quer dizer que tentou restaurar o sistema antes da configuração do LDAP, mas ainda está recebendo este erro e não consegue acessar o assistente?

Se for o primeiro, o patch ainda precisa de um pouco mais de trabalho; Devo ter uma solução para você amanhã. Se for o último, você pode tentar redefinir a configuração do LDAP com

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

(Você pode deixar de fora a parte RAILS_ENV=production se estiver fazendo isso em um ambiente de desenvolvimento.)

Eu restaurei um backup, o backup foi criado antes de eu iniciar a configuração do LDAP pela primeira vez.

Tento redefinir o con do LDAP com
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
Eu não "reiniciei" o conf, ele ainda funciona.
Agora parece que todo o sistema está funcionando, sem uma mensagem de erro

(Sem LDAP)

Ok, então você está dizendo:

  1. Zammad está trabalhando,
  2. você atualmente não tem sincronização LDAP configurada, e
  3. você não está mais recebendo uma mensagem de erro na página de sincronização LDAP?

(Para confirmar o ponto 2, você pode executar RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')" , que deve imprimir {} no console.)


Se tudo o que foi dito acima for verdade, e você copiou a versão corrigida de lib/ldap/user.rb que vinculei acima, você pode tentar configurar a sincronização do LDAP mais uma vez e me dizer se ainda encontrar o mesmo problema?

Ou se eu não entendi, por favor me diga qual é a situação.

Obrigado.

Desculpe pelo atraso na resposta. Sim, tudo correto. Depois que o LDAP foi configurado novamente, tive o mesmo erro novamente.

Para sua informação: Eu tenho o mesmo problema e o patch user.rb não funcionou comigo também.
Obrigado pelo seu trabalho antecipadamente

Todos que ainda têm o problema depois de alterar o arquivo e reiniciar o aplicativo, forneçam o erro (incluindo backtrace) de seu arquivo log/production.log . Obrigado!

@ e311 , @tbeitter e todos os outros que estão enfrentando esse problema - _ainda_outro_ script de depuração que gostaria que você executasse . Não quero falar muito cedo, mas esta realmente deve ser a última.

Coloque-o no diretório zammad e execute

$ zammad run rails r 2140_improved_bug_report.rb

Você será solicitado a fornecer o URL do servidor LDAP e as credenciais de login e, em seguida, o script irá gerar um arquivo chamado 2140_debug_log.txt . Este arquivo contém uma amostra dos atributos do usuário do seu servidor LDAP, então se isso pode significar algo confidencial, NÃO poste publicamente . Em vez disso, envie-o para [email protected] e mencione que é para Ryan.

Obrigado a todos por sua paciência contínua enquanto resolvemos esse bug.

Olá,
Se tento executar o novo script, obtenho este (o LDAP está ativado), nenhum arquivo foi criado.

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$

producao.log

também tem este erro ldap ... (instalação do Ubuntu 16.04 através do repo)

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, certifique-se de que 2140_improved_bug_report.rb está em seu diretório /opt/zammad .

@ e311 ops , que bug estranho.

Modifiquei o script removendo alguns caracteres multibyte desnecessários da saída do console. Você pode baixar novamente o script e tentar novamente ou simplesmente alterar as aspas inteligentes na linha 77 para aspas normais:

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

Não tenho 100% de certeza de que isso vai consertar, mas tenho um palpite.

@rlue , não 2140_improved_bug_report.rb em / opt / zammad

btw: Assim que excluo a configuração do LDAP (RAILS_ENV = production zammad run rails r "Setting.set ('ldap_config', {})"), o problema desaparece.

@ redbear-ger obrigado pelo seu feedback rápido; baixe o script do relatório de bug , coloque-o em /opt/zammad e tente novamente.

Mesmo que o problema tenha desaparecido 100% agora, seria de grande ajuda ter seus dados de amostra para que possamos construir testes para garantir que isso não aconteça novamente.

O bug desapareceu, mas também a integração ldap;)
Farei o download do script de relatório hoje à noite

Olá,
Eu tenho o mesmo problema e tentei todas as sugestões acima. Nenhum deles resolve o problema.
Portanto, decidi reproduzir o problema em um sistema de desenvolvimento para fornecer a você um arquivo de depuração sem fornecer dados confidenciais.

O script 2140_improved_bug_report.rb me retornou o seguinte arquivo de texto:
2140_debug_log.txt

Obrigado!

Obrigado @hublux! Por alguma razão, há vários lugares no arquivo onde os caracteres de controle (_ex., _ ^D ) são substituídos por um caractere literal ( ^ ) seguido por uma letra literal ( D ), e isso está causando erros ao tentar analisar o arquivo. Você fez alguma coisa com o arquivo antes de enviá-lo, por acaso? (Digamos, abri-lo em um editor de texto, fechá-lo e clicar em "salvar alterações"?) Ou você acha que talvez o GitHub possa ter feito algum tipo de processamento quando você o carregou?

Para confirmar se o arquivo original está formatado corretamente em sua máquina, tente o seguinte comando no diretório Zammad e verifique o resultado:

$ 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"]

Se tudo estiver funcionando conforme o esperado, envie o arquivo por e-mail para [email protected].

Olá,
Obrigado por sua resposta.

Na verdade, parece que algumas de minhas ações alteraram o arquivo quando copiei o conteúdo dele.
verificando com o gato, parece um pouco diferente.

grafik

Tentei o comando e recebo a saída correta.
grafik
Enviei o arquivo para o suporte da Zammad.

Aqui está também o novo arquivo
2140_debug_log.txt

@hublux , obrigado novamente por seu feedback rápido. Acho que há algo errado com o script de depuração que escrevi, porque esse novo arquivo também não está certo (está faltando muitos dados - 4kB, em comparação com o log de depuração de 16kB que você enviou originalmente).

Desde então, apliquei o patch ao script de depuração para (espero) tornar o arquivo 2140_debug_log.txt mais robusto e seguro para transmitir sem esses estranhos problemas de codificação. Faça o download mais uma vez e tente novamente. (Sinta-se à vontade para incluí-lo em sua resposta neste tópico, se for mais conveniente para você.)

E se você está realmente curioso para saber o que havia de errado com o script de depuração ...

Ele originalmente pegou um hash Ruby, empacotou-o e, em seguida, gravou os dados empacotados em um arquivo binário (sem codificação) 'texto'. Eu realmente não sei por que arquivos de texto binários seriam corrompidos ao serem transmitidos de uma máquina para outra, mas é o que estamos observando aqui.

Essa correção pega os dados empacotados e os codifica na base 64 antes de salvá-los em um arquivo de texto Unicode normal. Isso deve tornar mais seguro transmitir sem corrupção, porque o que é mais universal do que Unicode?

2140_debug_log.txt
Lá você tem a saída com o novo script
Saudações!

Olá a todos,
também concordando, pois o mesmo problema também me afeta - mesmo depois de atualizar para o novo lib/ldap/user.rb

2140_debug_log.txt

Eu também comecei a cavar um pouco no hash ldap_config e comecei a me livrar de todo o conteúdo de !binary . Mas descobri que, embora eu tivesse 4 desses, apenas dois mexiam com a codificação.

Tive que remover usersmimecertificate e msexchmailboxsecuritydescriptor .

Os outros dois, msexchmasteraccountsid e securityprotocol , não causaram problemas.

Olá,

Só para esclarecer, não tenho certeza se isso é óbvio, pois não vi ninguém mencionando isso.
Como uma conexão LDAP, eu uso o Active Directory com alemão como idioma do sistema. Então instalei um novo sistema e um Domínio separado. A única diferença do sistema anterior em que o problema ocorreu é que no novo sistema o idioma é definido como inglês dos Estados Unidos em vez de alemão. Com esta configuração não há erro a ser encontrado, tudo funcionando conforme o esperado. Então peguei meu sistema zammad original onde eu tinha o problema e conectei com o Domínio recém-instalado e o problema desapareceu.

Executar o seguinte na configuração de trabalho me dá o seguinte resultado:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

workingsetup.txt

Se eu executar o comando para verificar a configuração do ldap com a configuração original, ele falhará e receberá o seguinte erro:

grafik

Espero que isso ajude você.
Cumprimentos!

Obrigado @hublux! Conseguimos uma solução graças à sua contribuição; ele deve ser mesclado com develop breve!

screenshot_1

Após a atualização ainda obter o mesmo erro. (Mas sem a configuração do Exchange, apenas LDAP-Sync)

Olá @tidet , obrigado pelo feedback. Siga as instruções neste comentário ; seus dados de amostra serão de grande ajuda para nos ajudar a resolver esse problema de forma conclusiva.

Oi,
Só para informar que tive o mesmo problema novamente, mas a configuração antiga ainda existia. Portanto, proceda da seguinte forma se você tiver esse problema novamente.

Exclua a configuração antiga com o seguinte comando:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • pare o serviço zammad

  • atualizar zammad

  • inicie o serviço zammad novamente e tente reconfigurar a conexão ldap

Depois disso, não enfrentei nenhum problema.

Cumprimentos

@rlue devo tentar a solução acima ou permanecer no erro atual para fins de depuração?
O e-mail com o arquivo de log foi lançado para o suporte @

@tidet , agora que temos seus dados de amostra do LDAP, sinta-se à vontade para prosseguir e tentar o E independentemente de as instruções acima corrigirem ou não para você, haverá outro patch no pipeline chegando mais tarde hoje.

EDIT: Mudei de ideia. Uma vez que a correção está funcionando para você, evitarei modificar o código e adicionar qualquer complexidade desnecessária até que ele seja realmente quebrado para alguém.

@hublux Fix funcionou para mim também.

@hublux corrigido também

ainda enfrentamos esse problema. Fiz o que @hublux escreveu, excluí a configuração, atualizei o zammad (2.6.0-1534939663.6d23dae9.stretch agora), reiniciei o zammad e configurei nossa conexão ldap. Preciso corrigir o código manualmente? Desde já, obrigado.

Eu estava de férias, desculpe pelo atraso na resposta aqui e se perdi alguma coisa :)

Olá @tbeitter ,
Se você executar este comando, receberá alguma saída:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

Se sim, verifique isto:
https://github.com/zammad/zammad/issues/2140#issuecomment -417605384

Cumprimentos

Sim, recebo um erro semelhante ao seu:

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

Oi,

Acabei de verificar minha versão do Zammad que atualizei esta manhã:
grafik
É diferente do seu.

Você poderia prosseguir novamente com estas etapas:

  • Excluir configuração de LDAP
  • pare o serviço zammad
  • atualize o zammad novamente
  • iniciar serviço zammad

Cumprimentos

@hublux que funcionou para mim! Obrigado!

Um grande agradecimento a

Esta página foi útil?
0 / 5 - 0 avaliações