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

Creado en 24 jul. 2018  ·  59Comentarios  ·  Fuente: zammad/zammad

Hola, gracias por presentar un problema. Asegúrese de lo siguiente antes de crear un problema: ¡gracias! 🤓 Desde el 15 de noviembre manejamos todas las solicitudes, excepto errores reales, en nuestro tablero comunitario. Explicación completa: https://community.zammad.org/t/major-change-regarding-github-issues-community-board/21 Por favor publique: - Solicitudes de funciones - Preguntas de desarrollo - Preguntas técnicas en la pizarra -> https: / /community.zammad.org! Si cree que encontró un error, continúe: - Busque los problemas existentes y CHANGELOG.md para su problema - Puede que ya exista una solución - Asegúrese de usar la última versión de Zammad si es posible - Agregue el archivo `log / production. log` archivo de su sistema. Atención: ¡asegúrese de que no contenga datos confidenciales! - Escriba el problema en inglés - No elimine la plantilla - de lo contrario cerraremos el problema sin más comentarios - Haga preguntas sobre la configuración y el uso de Zammad en nuestra lista de correo Ver: https://zammad.org/participate Nota: Siempre hacemos nuestro mejor esfuerzo. Desafortunadamente, a veces hay demasiadas solicitudes y no podemos manejar todo a la vez. Si desea priorizar / escalar su problema, puede hacerlo mediante un contrato de soporte (consulte https://zammad.com/pricing#selfhosted). * El bloque de texto superior se eliminará automáticamente cuando envíe su problema *

Infos:

  • Versión de Zammad utilizada
  • Método de instalación (fuente, paquete, ..): DEP
  • Sistema operativo: ubuntu 18.04
  • Base de datos + versión: psql (PostgreSQL) 10.4 (Ubuntu 10.4-0ubuntu0.18.04)
  • Versión de Elasticsearch
  • Navegador + versión:
    Cromo

Comportamiento esperado:

Se muestra el marco LDPA (en el menú de configuración Sistema -> Integración -> LDAP) sin error
*

Comportamiento real:

No se muestra el marco LDAP. El marco permanece vacío con mensaje de error
También API y Monitoreo
2018-07-24 08_35_07-microsoft edge
*
Código de estado 500
{"error": "\" \ xC5 \ "de ASCII-8BIT a UTF-8"}

Pasos para reproducir el comportamiento:

Configure únicamente LDAP.

*
Mi configuración:
adaptador: postgresql
base de datos: zammad
piscina: 50
tiempo de espera: 5000
codificación: utf8
nombre de usuario: 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

Sí, estoy seguro de que se trata de un error y no se solicita una función o es una pregunta general.

LDAP bug import

Comentario más útil

Hola,
Solo para informar que tuve el mismo problema nuevamente, pero la configuración anterior aún existía. Por lo tanto, proceda de la siguiente manera si vuelve a experimentar este problema.

Elimine la configuración anterior con el siguiente comando:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • detener el servicio zammad

  • actualizar zammad

  • inicie el servicio zammad nuevamente e intente reconfigurar la conexión ldap

Después de esto no enfrenté ningún problema.

Saludos

Todos 59 comentarios

Hola @ e311 : ¿podrías proporcionar también la parte superior del registro? Aquí es donde se imprime la información requerida y cuál falta actualmente. Además: ¿Podría describir los pasos que siguió para solucionar el problema? Actualmente, esto no está claro. ¡Gracias!

Hola,
voy a intentarlo.
Abro el (en admin -> sistema -> Integarion) LDAP. Empiezo la configuración Todo bien.
Contraseña de usuario de DN de dominio.
3 ldap

Usé el mapeo estándar.
4

Ad la pantalla LDAP Config no se ve bien.
6
Presiono caja fuerte. Y recibo un mensaje de error.
7

Después de recargar la página, el marco está vacío.
2018-07-24 08_35_07-microsoft edge

y aquí está el archivo de registro completo:

log.txt

Hola @ e311 : ¡gracias por el informe completo! La línea interesante en el registro es 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'

Lo que básicamente dice que hay caracteres especialmente codificados en la configuración de LDAP que se almacenarán / almacenarán. También puedo verlos en el registro.

Creo que esto es suficiente para reproducir el problema. Gracias por tu apoyo hasta ahora. Arreglaremos el problema.

Tenga en cuenta que la integración de Exchange también se ve afectada: # 2152

Hola @ e311 ,

Hemos estado investigando este problema y estamos bastante seguros de que entendemos lo que está sucediendo, pero necesitamos pedir su ayuda nuevamente para estar completamente seguros.

Paso 1: confirma la causa del error

Prueba la siguiente línea en tu terminal, en el directorio Zammad. Si nuestras sospechas son correctas, entonces debería fallar (_es decir, _ generar un error y mostrar un rastreo):

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

Si vio un rastreo para el mismo Encoding::UndefinedConversionError que obtuvo en el informe de error inicial, entonces genial - ¡en el Paso 2! De lo contrario, confirme que no ha restablecido su base de datos ni ha modificado su configuración LDAP desde la última vez que ocurrió este error. Si aún no recibe un error, háganoslo saber para que podamos continuar con la investigación.

Paso 2: envíenos un último dato crucial

Ejecute el siguiente comando en su terminal:

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

Luego, envíe el archivo resultante ( zammad_2140_debug_output.txt ) a [email protected]. Asegúrese de mencionar que el mensaje es para Thorsten Eckel y para el error # 2140.

Con esto, deberíamos poder hacer que una solución funcione de inmediato.

¡Gracias, de nuevo, por toda su ayuda!

Esta es la primera masajista

serveradmin @ support : / opt / zammad $ rails r "pone Setting.get ('ldap_config'). to_json"
Rastreo (llamadas recientes más última):
4: desde contenedor / rieles: 3 : en <main>'         3: from bin/rails:3:in require_relative '
2: desde /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 ': no ​​se puede cargar dicho archivo - bundler / setup (LoadError)

Gesendet: Montag, 06 de agosto de 2018 um 11:53 Uhr
Von: "Ryan Lue" [email protected]
An: zammad / zammad [email protected]
Cc: e311 [email protected] , mencione menció[email protected]
Betreff: Re: [zammad / zammad] Código de estado LDAP / Exchange UTF-8 500 (# 2140)

Hola @ e311 ,

Hemos estado investigando este problema y estamos bastante seguros de que entendemos lo que está sucediendo, pero necesitamos pedir su ayuda nuevamente para estar completamente seguros.

Paso 1: confirma la causa del error

Prueba la siguiente línea en tu terminal, en el directorio Zammad. Si nuestras sospechas son correctas, entonces debería fallar (es decir, generar un error y mostrar un rastreo):

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

Si vio un rastreo para el mismo Encoding :: UndefinedConversionError que obtuvo en el informe de error inicial, entonces genial - ¡en el Paso 2! De lo contrario, confirme que no ha restablecido su base de datos ni ha modificado su configuración LDAP desde la última vez que ocurrió este error. Si aún no recibe un error, háganoslo saber para que podamos continuar con la investigación.

Paso 2: envíenos un último dato crucial

Ejecute el siguiente comando en su terminal:

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

Luego, envíe el archivo resultante (zammad_2140_debug_output.txt) a [email protected]. Asegúrese de mencionar que el mensaje es para Thorsten Eckel y para el error # 2140.

Con esto, deberíamos poder hacer que una solución funcione de inmediato.

¡Gracias, de nuevo, por toda su ayuda!

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub o silencie el hilo.

rieles r "pp Setting.get ('ldap_config'). excepto ('bind_pw')"> zammad_2140_debug_output.txt
prodruce un archivo emty (no puedo subir porque está vacío)

befehl
output

Hola @ e311 : prueba lo siguiente:

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

O:

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

pero debería ser la primera línea.

Intento el primer comando:
Lo mismo que "Serveradmin" con sudo o sin sudo
image
Bundel mi no estar instalado?
image

@ e311 , eso es muy extraño. Ignoremos el segundo comando ( bundle exec rails ... ) por ahora; no creo que ese sea el camino correcto aquí. ¿Podría intentar hacer una copia de seguridad del archivo de registro y crear uno nuevo vacío?

/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

Gracias por toda su ayuda para resolver este problema con nosotros.

@rlue hicimos los comandos ayer con @ e311 .

El registro tiene derechos de acceso perfectamente buenos, lo verifiqué dos veces.
Le enviaré el resultado de ldap-config en la mayoría de los casos, en caso de que aún no lo tenga.

Vaya, ayer me enviaste el registro al comienzo del día. ¡No sé cómo me lo perdí!

@ e311 , no vi lo que esperaba ver en su salida de depuración. Ahora que @MrGeneration pudo ayudarlo a que sus comandos zammad run rails r ... funcionen, ¿podría intentar lo siguiente nuevamente y decirme si está aumentando el Encoding::UndefinedConversionError que es este problema?

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

Recibo el mensaje "Su versión de Ruby es 2.5.1, pero su Gemfile especificó 2.4.4"
Lo siento, no funcionará (intento todo lo que me dice Google)

Tu versión de Ruby y Elasticsearch no son compatibles con Zammad.
Utilice Ruby 2.4.4 y Elasticsearch hasta 5.6.

@ e311 lo siento en realidad, totalmente mi culpa. Olvidé agregar zammad r nuevamente. -_- '

me refería

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

Ahí está el mensaje:

Neues Textdokument (3) .txt

Entonces, el resultado del último comando fue exactamente lo que esperaba. En resumen, parece que algunos de los atributos de usuario de su servidor LDAP tienen valores de datos binarios. Zammad intenta convertirlos en cadenas y luego pasarlos del backend al frontend, pero como en realidad no son cadenas, acabamos encontrando algunos problemas de codificación / conversión.

Por supuesto, dado que no puedo conectarme a su servidor LDAP, no puedo estar 100% seguro de que una solución funcionará hasta que la pruebe por nosotros. Entonces, me gustaría pedir su ayuda en dos puntos más:

  1. La última vez que le pedí que ejecutara algunos comandos y nos envíe el resultado por correo electrónico (el miércoles pasado), los comandos que le di no eran del todo correctos y no nos dieron exactamente la información que necesitábamos. Aquí hay un script que debería hacerlo bien esta vez ( descargar aquí ):

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

    Perdón por obligarte a hacerlo dos veces.

  2. Escribí un parche que creo que debería solucionar el problema. Básicamente, cada vez que encuentra un valor de datos binarios en la sincronización LDAP, lo omite en lugar de intentar guardarlo como una cadena.

    Me gustaría confirmar que la solución funciona en su máquina antes de fusionar estos cambios en la base de código principal. Aquí hay una versión corregida de errores del archivo lib/ldap/user.rb .

    Descárguelo y cópielo en /opt/zammad/lib/ldap/user.rb , luego reinicie Zammad (¡importante!) Y

    screenshot_20180814_201507

Si el Paso 2 aún no lo soluciona, ejecute el script del Paso 1 nuevamente y asegúrese de enviarnos ambos archivos.

¡Gracias de nuevo por tu ayuda y tu paciencia!

Reinicio el sistema de agujeros, pero no puedo presionar el botón de cambio.

image

antes del parche
2140_bug_report (Paso 1) .txt

después del parche
2140_bug_report (Paso 2) .txt

También intento una nueva configuración LDAP. Restablezco el sistema antes de la configuración LDAP. pero es el mismo resultado.

He comprobado el nivel funcional del dominio. Es 2003, ¿puede ser este el problema?

Reinicio el sistema de agujeros, pero no puedo presionar el botón de cambio.

Gracias por aclarar esto. Originalmente, no había entendido el alcance del problema.

También intento una nueva configuración LDAP. Restablezco el sistema antes de la configuración LDAP. pero es el mismo resultado.

¿Quiere decir que restauró el sistema antes de la configuración de LDAP, ejecutó con éxito todo el asistente y aún así terminó con el mismo problema? ¿O quiere decir que intentó restaurar el sistema antes de la configuración LDAP, pero sigue recibiendo este error y no puede acceder al asistente?

Si es lo primero, entonces el parche aún necesita un poco más de trabajo; Debería tener una solución para ti mañana. Si es lo último, puede intentar restablecer la configuración LDAP con

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

(Puede omitir la parte RAILS_ENV=production si está haciendo esto en un entorno de desarrollo).

He restaurado una copia de seguridad. La copia de seguridad se creó antes de iniciar la configuración LDAP por primera vez.

Intento restablecer el LDAP con
$ RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"
No "restablezco" la configuración, todavía funciona.
Ahora parece que todo el sistema se está ejecutando, sin un mensaje de error.

(Sin LDAP)

Bien, entonces estás diciendo:

  1. Zammad está trabajando
  2. actualmente no tiene configurada la sincronización LDAP, y
  3. ¿Ya no recibe un mensaje de error en la página de sincronización LDAP?

(Para confirmar el punto 2, puede ejecutar RAILS_ENV=production zammad run rails r "puts Setting.get('ldap_config')" , que debería imprimir {} en la consola).


Si todo lo anterior es cierto y ha copiado la versión parcheada de lib/ldap/user.rb que vinculé anteriormente, ¿puede intentar configurar la sincronización LDAP una vez más y decirme si aún se encuentra con el ¿el mismo problema?

O si no he entendido bien, avíseme cuál es la situación.

Gracias.

Lo siento por la respuesta tardía. Si todo correcto. Después de volver a configurar LDAP, volví a tener el mismo error.

FYI: Tengo el mismo problema y el user.rb parcheado tampoco funcionó para mí.
Gracias por tu trabajo de antemano

Todos los que todavía tienen el problema después de cambiar el archivo y reiniciar la aplicación, proporcionen el error (incluido el rastreo) de su archivo log/production.log . ¡Gracias!

@ e311 , @tbeitter , y todos los demás que están experimentando este problema actualmente, tengo _yet otra_ secuencia de comandos de depuración que me gustaría que ejecutara . No quiero hablar demasiado pronto, pero este debería ser el último.

Colóquelo en su directorio zammad y luego ejecute

$ zammad run rails r 2140_improved_bug_report.rb

Se le pedirá la URL del servidor LDAP y las credenciales de inicio de sesión, y luego el script generará un archivo llamado 2140_debug_log.txt . Este archivo contiene una muestra de atributos de usuario de su servidor LDAP, así que si eso pudiera significar algo sensible, NO lo publique públicamente . En su lugar, envíelo a [email protected] y mencione que es para Ryan.

Gracias a todos por su continua paciencia mientras solucionamos este error.

Hola,
Si intento ejecutar el nuevo script, obtengo esto (LDAP está activado), no se creó ningún archivo.

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$

production.log

también tengo este error de ldap ... (instalación de ubuntu 16.04 a través del repositorio)

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, asegúrese de que 2140_improved_bug_report.rb esté en su directorio /opt/zammad .

@ e311 whoops , eso es un error extraño.

Modifiqué el script eliminando algunos caracteres multibyte innecesarios de la salida de la consola. Puede volver a descargar el script e intentarlo de nuevo, o simplemente cambiar las comillas tipográficas en la línea 77 a comillas regulares:

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

No estoy 100% seguro de que esto lo solucionará, pero tengo una corazonada.

@rlue , no 2140_improved_bug_report.rb en / opt / zammad

Por cierto: Tan pronto como elimino la configuración de LDAP (RAILS_ENV = production zammad run rails r "Setting.set ('ldap_config', {})"), el problema desaparece.

@ redbear-ger gracias por sus comentarios rápidos; descargue la secuencia de comandos del informe de errores , colóquela en /opt/zammad e inténtelo de nuevo.

Incluso si el problema ha desaparecido al 100% ahora, sería de gran ayuda tener sus datos de muestra para que podamos crear pruebas para asegurarnos de que esto no vuelva a suceder.

El error se ha ido pero también la integración ldap;)
Descargará el guión del informe esta noche

Hola,
Tengo el mismo problema y probé todas las sugerencias anteriores. Ninguno resuelve el problema.
Así que decidí reproducir el problema en un sistema de desarrollo para proporcionarle un archivo de depuración sin proporcionar datos confidenciales.

El script 2140_improved_bug_report.rb me devolvió el siguiente archivo de texto:
2140_debug_log.txt

¡Gracias!

¡Gracias @hublux! Por alguna razón, hay un montón de lugares en el archivo donde los caracteres de control (_ por ejemplo, _ ^D ) se reemplazan con un quilate literal ( ^ ) seguido de una letra literal ( D ), y esto está causando errores al intentar analizar el archivo. ¿Hizo algo con el archivo antes de cargarlo, por casualidad? (Digamos, ¿abrirlo en un editor de texto, luego cerrarlo y hacer clic en "guardar cambios"?) ¿O supones que tal vez GitHub podría haber realizado algún tipo de procesamiento en él cuando lo subiste?

Para confirmar que el archivo original está formateado correctamente en su máquina, intente el siguiente comando en su directorio Zammad y verifique el 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"]

Si todo funciona como se esperaba, envíe el archivo por correo electrónico a [email protected].

Hola,
Gracias por su respuesta.

De hecho, parece que algunas de mis acciones cambiaron el archivo cuando copié el contenido.
comprobándolo con el gato, se ve un poco diferente.

grafik

Probé el comando y recibí el resultado correcto.
grafik
Envié el archivo al soporte de zammad.

Aquí también está el nuevo archivo
2140_debug_log.txt

@hublux , gracias de nuevo por sus rápidos comentarios. Creo que hay algo mal con el script de depuración que escribí, porque este nuevo archivo tampoco es del todo correcto (le faltan muchos datos, 4kB, en comparación con el registro de depuración de 16kB que envió originalmente).

Desde entonces, he parcheado el script de depuración para (con suerte) hacer que el archivo 2140_debug_log.txt más robusto y seguro para transmitir sin estos extraños problemas de codificación. Descárguelo una vez más y vuelva a intentarlo. (Siéntase libre de incluirlo en su respuesta en este hilo, si es más conveniente para usted).

Y si tiene mucha curiosidad por saber qué estaba mal con el script de depuración ...

Originalmente tomó un hash de Ruby, lo ordenó y luego escribió los datos ordenados en un archivo de 'texto' binario (sin codificación). Realmente no sé por qué los archivos de texto binarios se corrompen cuando se transmiten de una máquina a otra, pero eso es lo que estamos observando aquí.

Esta corrección toma los datos calculados y los codifica en base 64 antes de guardarlos en un archivo de texto Unicode normal. Eso debería hacer que sea más seguro transmitir sin corrupción, porque ¿qué es más universal que Unicode?

2140_debug_log.txt
Ahí tienes la salida con el nuevo script.
¡Saludos!

Hola a todos,
también repicando, ya que el mismo problema me afecta a mí también, incluso después de actualizar al nuevo lib/ldap/user.rb

2140_debug_log.txt

También comencé a investigar un poco en el ldap_config -hash y comencé a deshacerme de todos los contenidos de !binary . Pero resultó que, a pesar de que tenía 4 de estos, solo dos estaban mal con la codificación.

Tuve que eliminar usersmimecertificate y msexchmailboxsecuritydescriptor .

Los otros dos, msexchmasteraccountsid y securityprotocol no causaron ningún problema.

Hola,

Solo para aclarar, no estoy seguro de si esto es obvio, ya que no he visto a nadie mencionar esto.
Como conexión LDAP utilizo Active Directory con alemán como idioma del sistema. Así que instalé un nuevo sistema y un dominio separado. La única diferencia con el sistema anterior donde ocurrió el problema es que en el nuevo sistema el idioma está configurado en inglés de EE. UU. En lugar de alemán. Con esta configuración no se puede encontrar ningún error, todo funciona como se esperaba. Así que tomé mi sistema zammad original donde tenía el problema y lo conecté con el dominio recién instalado y el problema desapareció.

Ejecutar lo siguiente en la configuración de trabajo me da el siguiente resultado:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

workingsetup.txt

Si ejecuto el comando para verificar la configuración de ldap con la configuración original, falla y recibo el siguiente error:

grafik

Espero que esto te ayude.
¡Saludos!

¡Gracias @hublux! Tenemos una solución en las obras gracias a sus comentarios; ¡debería fusionarse con develop breve!

screenshot_1

Después de la actualización, sigue apareciendo el mismo error. (Pero sin la configuración de Exchange, solo LDAP-Sync)

Hola @tidet , gracias por los comentarios. Siga las instrucciones de este comentario ; Sus datos de muestra serán de gran ayuda para ayudarnos a resolver este problema de manera concluyente.

Hola,
Solo para informar que tuve el mismo problema nuevamente, pero la configuración anterior aún existía. Por lo tanto, proceda de la siguiente manera si vuelve a experimentar este problema.

Elimine la configuración anterior con el siguiente comando:
sudo RAILS_ENV=production zammad run rails r "Setting.set('ldap_config', {})"

  • detener el servicio zammad

  • actualizar zammad

  • inicie el servicio zammad nuevamente e intente reconfigurar la conexión ldap

Después de esto no enfrenté ningún problema.

Saludos

@rlue, ¿ debería probar la solución anterior o mantenerme en el error actual para fines de depuración?
El correo electrónico con archivo de registro es compatible con @

@tidet , ahora que tenemos sus datos LDAP de muestra, no dude en seguir adelante y probar lo anterior. Encontré un valor que _podría_ seguir causando problemas de todos modos, pero probablemente esté bien. Y ya sea que las instrucciones anteriores lo solucionen o no, habrá otro parche en proceso que vendrá más tarde hoy.

EDITAR: Cambié de opinión. Dado que la solución está funcionando para usted, me abstendré de modificar el código y agregar cualquier complejidad innecesaria hasta que realmente se rompa para alguien.

@hublux Fix también me funcionó.

@hublux fijo también

todavía nos enfrentamos a este problema. Lo que hice fue que @hublux escribió,

Estaba de vacaciones, perdón por la respuesta tardía aquí y si me perdí algo :)

Hola @tbeitter ,
Si ejecuta este comando, recibe algún resultado:
sudo zammad run rails r "puts Setting.get('ldap_config').to_json"

Si es así, mira esto:
https://github.com/zammad/zammad/issues/2140#issuecomment -417605384

Saludos

Sí, recibo un error similar al tuyo:

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

Hola,

Acabo de comprobar mi versión de Zammad que actualicé esta mañana:
grafik
Se diferencia del tuyo.

¿Podría continuar de nuevo con estos pasos?

  • Eliminar configuración LDAP
  • detener el servicio zammad
  • actualiza zammad de nuevo
  • iniciar el servicio zammad

Saludos

@hublux que funcionó para mí! ¡Gracias!

Un gran agradecimiento a

¿Fue útil esta página
0 / 5 - 0 calificaciones