Zammad: El programador no se está ejecutando debido a un descriptor de archivo incorrecto en PGConsumeInput ()

Creado en 11 sept. 2017  ·  23Comentarios  ·  Fuente: zammad/zammad

Desde la actualización de 1.6.xa 2.1.x, notamos que los correos ya no se extraen. Aquí es cuando notamos que el programador se está ejecutando en un error con su conexión PostgreSQL.

Infos:

  • Versión de Zammad utilizada: 2.1.1-1505128598.ef38800b.jessie
  • Fuente de instalación de Zammad utilizada: paquete
  • Sistema operativo: Debian 8
  • Versión de PostgreSQL: 9.4.13-0 + deb8u1

Salud

channel is active but not fetched for 1 hour
channel is active but not fetched for 1 hour
channel is active but not fetched for 1 hour
channel is active but not fetched for 1 hour
scheduler not running

Tronco

==> /var/log/zammad/scheduler_err.log <==
ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() could not receive data from server: Bad file descriptor
: SELECT "delayed_jobs".* FROM "delayed_jobs"
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in `async_exec'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in `block in exec_no_cache'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:590:in `block in log'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.5/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in `exec_no_cache'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:585:in `execute_and_clear'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:103:in `exec_query'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:377:in `select_prepared'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:39:in `select_all'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `select_all'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/querying.rb:39:in `find_by_sql'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:702:in `exec_queries'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:583:in `load'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:260:in `records'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation/delegation.rb:38:in `each'
  /opt/zammad/app/models/scheduler.rb:78:in `cleanup'
  /opt/zammad/app/models/scheduler.rb:24:in `threads'
  script/scheduler.rb:66:in `block in <top (required)>'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons/application.rb:266:in `block in start_proc'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons/application.rb:275:in `start_proc'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons/application.rb:296:in `start'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons/controller.rb:56:in `run'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons.rb:197:in `block in run_proc'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons/cmdline.rb:92:in `catch_exceptions'
  /opt/zammad/vendor/bundle/ruby/2.4.0/gems/daemons-1.2.4/lib/daemons.rb:196:in `run_proc'
  script/scheduler.rb:49:in `<top (required)>'
==> /var/log/zammad/scheduler_out.log <==
bundler: failed to load command: script/scheduler.rb (script/scheduler.rb)

PostgreSQL se puede conectar y funciona correctamente.

bug

Comentario más útil

@martini Puedo confirmar que la actualización funcionó. ¡Muchas gracias!

Intentaré una rebaja a 2.0 en un momento.

Todos 23 comentarios

Esto suele suceder cuando no queda espacio en la temperatura o en el almacén de datos. No creo que esto esté relacionado con Zammad. El rastreo es directamente de
ActiveRecord

Sugiero verificar el sistema de archivos (espacio e inodos) y realizar una verificación en la base de datos de PG.

Editar:
¿Qué sucede cuando reinicia tanto el Programador como Postgresql?

Nota:
¡No utilice la rama de desarrollo en producción! 2.0 es estable

El sistema de archivos no parece estar ni cerca de estar lleno.

hexa<strong i="6">@tickets</strong>:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       20G  6.2G   13G  34% /
udev             10M     0   10M   0% /dev
tmpfs           502M   45M  457M   9% /run
tmpfs           1.3G   16K  1.3G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           1.3G     0  1.3G   0% /sys/fs/cgroup
tmpfs           251M     0  251M   0% /run/user/2000
hexa<strong i="7">@tickets</strong>:~$ df -i
Filesystem      Inodes IUsed   IFree IUse% Mounted on
/dev/xvda1     1310720 97329 1213391    8% /
udev            314738   268  314470    1% /dev
tmpfs           320664   313  320351    1% /run
tmpfs           320664     5  320659    1% /dev/shm
tmpfs           320664     3  320661    1% /run/lock
tmpfs           320664    13  320651    1% /sys/fs/cgroup
tmpfs           320664     4  320660    1% /run/user/2000

PostgreSQL no parece tener ninguna mecánica de verificación interna. Reiniciar ambos no cambia la situación.


Entiendo que no use la rama de desarrollo, pero necesitábamos comenzar con 1.6 ya que necesitábamos LDAP y luego nos olvidamos de anclar la versión.

Además, PostgreSQL está claramente activo y accesible. Esto también funciona con las credenciales establecidas en /opt/zammad/config/database.yml .

root<strong i="7">@tickets</strong>:/home/hexa# sudo -u postgres psql
psql (9.4.13)
Type "help" for help.

postgres=# \connect zammad
You are now connected to database "zammad" as user "postgres".

zammad=# \dt
                      List of relations
 Schema |                Name                | Type  | Owner  
--------+------------------------------------+-------+--------
 public | activity_streams                   | table | zammad
 public | ar_internal_metadata               | table | zammad
 public | authorizations                     | table | zammad
 public | avatars                            | table | zammad
 public | calendars                          | table | zammad
 public | channels                           | table | zammad
 public | chat_agents                        | table | zammad
 public | chat_messages                      | table | zammad
 public | chat_sessions                      | table | zammad
 public | chat_topics                        | table | zammad
 public | chats                              | table | zammad
 public | cti_caller_ids                     | table | zammad
 public | cti_logs                           | table | zammad
 public | delayed_jobs                       | table | zammad
 public | email_addresses                    | table | zammad
 public | external_credentials               | table | zammad
 public | external_syncs                     | table | zammad
 public | groups                             | table | zammad
 public | groups_users                       | table | zammad
 public | histories                          | table | zammad
 public | history_attributes                 | table | zammad
 public | history_objects                    | table | zammad
 public | history_types                      | table | zammad
 public | http_logs                          | table | zammad
 public | import_jobs                        | table | zammad
 public | jobs                               | table | zammad
 public | karma_activities                   | table | zammad
 public | karma_activity_logs                | table | zammad
 public | karma_users                        | table | zammad
 public | link_objects                       | table | zammad
 public | link_types                         | table | zammad
 public | links                              | table | zammad
 public | locales                            | table | zammad
 public | macros                             | table | zammad
 public | network_categories                 | table | zammad
 public | network_categories_moderator_users | table | zammad
 public | network_category_subscriptions     | table | zammad
 public | network_category_types             | table | zammad
 public | network_item_comments              | table | zammad
 public | network_item_plus                  | table | zammad
 public | network_item_subscriptions         | table | zammad
 public | network_items                      | table | zammad
 public | network_privacies                  | table | zammad
 public | networks                           | table | zammad
 public | notifications                      | table | zammad
 public | oauth_access_grants                | table | zammad
 public | oauth_access_tokens                | table | zammad
 public | oauth_applications                 | table | zammad
 public | object_lookups                     | table | zammad
 public | object_manager_attributes          | table | zammad
 public | online_notifications               | table | zammad
 public | organizations                      | table | zammad
 public | organizations_users                | table | zammad
 public | overviews                          | table | zammad
 public | overviews_groups                   | table | zammad
 public | overviews_roles                    | table | zammad
 public | overviews_users                    | table | zammad
 public | package_migrations                 | table | zammad
 public | packages                           | table | zammad
 public | permissions                        | table | zammad
 public | permissions_roles                  | table | zammad
 public | postmaster_filters                 | table | zammad
 public | recent_views                       | table | zammad
 public | report_profiles                    | table | zammad
 public | roles                              | table | zammad
 public | roles_groups                       | table | zammad
 public | roles_users                        | table | zammad
 public | schedulers                         | table | zammad
 public | schema_migrations                  | table | zammad
 public | sessions                           | table | zammad
 public | settings                           | table | zammad
 public | signatures                         | table | zammad
 public | slas                               | table | zammad
 public | stats_stores                       | table | zammad
 public | store_files                        | table | zammad
 public | store_objects                      | table | zammad
 public | store_provider_dbs                 | table | zammad
 public | stores                             | table | zammad
 public | tag_items                          | table | zammad
 public | tag_objects                        | table | zammad
 public | tags                               | table | zammad
 public | taskbars                           | table | zammad
 public | templates                          | table | zammad
 public | templates_groups                   | table | zammad
 public | text_modules                       | table | zammad
 public | text_modules_groups                | table | zammad
 public | ticket_article_flags               | table | zammad
 public | ticket_article_senders             | table | zammad
 public | ticket_article_types               | table | zammad
 public | ticket_articles                    | table | zammad
 public | ticket_counters                    | table | zammad
 public | ticket_flags                       | table | zammad
 public | ticket_priorities                  | table | zammad
 public | ticket_state_types                 | table | zammad
 public | ticket_states                      | table | zammad
 public | ticket_time_accountings            | table | zammad
 public | tickets                            | table | zammad
 public | tokens                             | table | zammad
 public | translations                       | table | zammad
 public | triggers                           | table | zammad
 public | type_lookups                       | table | zammad
 public | user_devices                       | table | zammad
 public | users                              | table | zammad
(103 rows)

Hoy tengo lo mismo en mac os 10.12.6 (pero estaba funcionando los días anteriores with) con desarrollar (Zammad 2.1). Todo está funcionando (rieles c, rieles s, ...) esperando el planificador.

Tengo la misma actualización de 1.5 a 2.0 100% de uso de CPU y este error

tail: schedule_err.log: Datei abgeschnitten
ActiveRecord :: StatementInvalid: PG :: ConnectionBad: PQconsumeInput () no pudo recibir datos del servidor: descriptor de archivo incorrecto
: SELECCIONE "delayed_jobs". * FROM "delayed_jobs"
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in async_exec' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in bloque en exec_no_cache '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:590:in block in log' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.5/lib/active_support/notifications/instrumenter.rb:21:in instrumento '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:583:in log' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in exec_no_cache '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:585:in execute_and_clear' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql/database_statements.rb:103:in exec_query '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:377:in select_prepared' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/database_statements.rb:39:in select_all '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in select_all' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/querying.rb:39:in find_by_sql '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:702:in exec_queries' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:583:in load '
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation.rb:260:in records' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation/delegation.rb:38:in cada '
/opt/zammad/app/models/scheduler.rb:78:in cleanup' /opt/zammad/app/models/scheduler.rb:24:in hilos '
script / planificador.rb: 66: en `bloque en

@Hagelsturm que sistema

En nuestro caso es script/scheduler.rb start -t .

En nuestro caso es script/scheduler.rb start -t

Eso también está de mi lado. Normalmente, el planificador se ejecuta en modo demonio ( script/scheduler.rb start o script/scheduler.rb stop ).

script/scheduler.rb start -t generalmente solo se usa para desarrolladores porque el programador no se ejecuta en segundo plano (como demonio).

@mweinelt Una pregunta para mí es, ¿por qué estás usando -t ?

JFI: El programador funciona bien para mí en segundo plano (como demonio).

Estoy ejecutando 2.1.1-1505985142.807a1d88.jessie porque olvidé anclar a una versión estable. La opción -t debe provenir de los archivos del servicio, no he cambiado nada al respecto.

root<strong i="8">@tickets</strong>:/opt/zammad# grep -ri "scheduler.rb start" *
contrib/systemd/zammad-scheduler.service:ExecStart=/bin/bash -l -c "${BUNDLE_BINARY} exec script/scheduler.rb start -t"
Procfile:worker: bundle exec script/scheduler.rb start -t
Procfile.frontend:worker: bundle exec ruby script/scheduler.rb start -t
script/init-script-normal-user-rvm-fedora:    script/scheduler.rb start &> /dev/null && echo_success || echo_failure
script/init.d/zammad:  execute "RAILS_ENV=production script/scheduler.rb start $SCHEDULER_OPTS"
script/build/test_startup.sh:bundle exec script/scheduler.rb start
script/local_browser_tests.sh:script/scheduler.rb start
vendor/pkgr/processes/worker:exec bundle exec script/scheduler.rb start -t $@

Usé Debian 8 ayer y también probé la versión 9
Pero el error es el mismo
No modifico nada, viene del paquete, no de mí.

El proceso con 100% es Ruby
script / planificador.rb inicio -t
Cada vez está comenzando y chocando

desde Scheduler.rb --help:

  • "-t, --ontop Mantente en la parte superior (no demoniza)"

Tal vez, pero el Programador se bloquea todo el tiempo
Muere ¿Crees que la razón es el parámetro ontop?

@Hagelsturm
No, solo quería aclarar lo que hace. No vi responder a los martinis.
La demonización la realiza systemd, por lo que normalmente no es un problema.

@martini
Si recuerdo bien, se usa "-t" porque systemd piensa que el programador ha fallado y se detuvo cuando entra en segundo plano desde el archivo de la unidad.

@mweinelt
Si está utilizando 2.1.1, está en el repositorio de desarrollo.
No hay forma de fijar un paquete estable allí.
Use un repositorio estable para obtener paquetes estables: https://packager.io/gh/zammad/zammad/builds/2414/install/debian-8

@monotek
La configuración de Type=forking debería permitir comenzar sin -t si no me equivoco.

Con respecto a la degradación a una versión estable (2.0.x):
Tendría que revertir algunas migraciones si no tengo una copia de seguridad reciente, ¿verdad?

Gracias por la pista. Intentaré cambiarlo más tarde. No estoy seguro si es posible en packager.io.

Está bien, ahora uso la versión 2.0
pero ahora tengo un problema con el canal de correo electrónico

Correo electrónico :: Notificación de salida No se puede usar el canal :: Controlador :: Smtp: # <: econnrefused: i = "6">

No puedo verificar la configuración porque la cuenta está vacía :-(

ticket
el canal está activo pero no se recupera durante 1 hora
Canal: Correo electrónico :: Salida de notificación No se puede usar el canal :: Controlador :: Smtp: # <: econnrefused: i = "7">

¿cómo es posible configurar es nuevo en el cli?

@Hagelsturm intente verificar su configuración de smtp, probablemente el parámetro de host para SMTP en la configuración de su canal de correo electrónico no esté allí. Además, dado que su problema es un problema nuevo, ¿debería crear un problema nuevo?

¡Hola! El mismo problema aquí. Llego aquí desde el # 1473. Instalé la versión 2.0 pero no pude agregar una nueva cuenta de correo electrónico en la configuración del canal de correo electrónico, tal vez relacionado con el último comentario de @Hagelsturm.

Tendría que revertir algunas migraciones si no tengo una copia de seguridad reciente, ¿verdad?

@mweinelt lo siento, no vi este comentario. Por el momento no hay migraciones de bases de datos entre estable y en desarrollo. Así que ahora mismo puedes cambiar entre estable / maestro y desarrollar sin problemas.

De todos modos, parece que se solucionó el problema "Descriptor de archivo incorrecto en PGConsumeInput". Entonces, si actualiza desarrollar primero (antes de volver a estable) ¡estaría bien!

¡Gracias por la retroalimentación!

-Martín

@Hagelsturm JFI su problema de correo electrónico tiene que ver con este problema del programador. Otro tema sería bueno para eso.

@martini Puedo confirmar que la actualización funcionó. ¡Muchas gracias!

Intentaré una rebaja a 2.0 en un momento.

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