После обновления с 1.6.x до 2.1.x мы заметили, что письма больше не извлекаются. Это когда мы заметили, что планировщик выдает ошибку при подключении к PostgreSQL.
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
==> /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 подключается и работает нормально.
Обычно это происходит, когда не остается места во временном хранилище или хранилище данных. Я не думаю, что это связано с Заммадом. Отслеживание прямо из
ActiveRecord
Я предлагаю проверить файловую систему (пространство и inodes) и выполнить проверку базы данных PG.
Редактировать:
Что произойдет, если вы перезапустите и планировщик, и Postgresql?
Примечание:
Пожалуйста, не используйте ветку разработки в продакшене! 2.0 стабильна
Файловая система даже близко не выглядит полной.
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, похоже, не имеет механизма внутренней проверки. Перезапуск обоих не меняет ситуации.
Я понимаю, что не следует использовать ветку разработки, но нам нужно было начать с 1.6, так как нам требовался LDAP, а затем мы забыли закрепить версию.
Кроме того, PostgreSQL явно активен и доступен. Это также работает с учетными данными, установленными в /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)
Сегодня у меня то же самое на mac os 10.12.6 (но работало накануне 🤥) с develop (Zammad 2.1). Все работает (rails c, rails s, ...) в ожидании планировщика.
У меня такое же обновление с 1.5 до 2.0 100% загрузка ЦП и эта ошибка
хвост: scheduler_err.log: Datei abgeschnitten
ActiveRecord :: StatementInvalid: PG :: ConnectionBad: PQconsumeInput () не может получить данные с сервера: неверный дескриптор файла
: 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:inasync_exec' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/postgresql_adapter.rb:598:in
блок
/opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/connection_adapters/abstract_adapter.rb:590:inblock 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:inlog' /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:inexecute_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:inselect_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:inselect_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:inexec_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:inrecords' /opt/zammad/vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.5/lib/active_record/relation/delegation.rb:38:in
каждый '
/opt/zammad/app/models/scheduler.rb:78:incleanup' /opt/zammad/app/models/scheduler.rb:24:in
нитей '
script / scheduler.rb: 66: в `блоке в
@Hagelsturm какая
В нашем случае это script/scheduler.rb start -t
.
В нашем случае это
script/scheduler.rb start -t
Это тоже на моей стороне. Обычно планировщик работает в режиме демона ( script/scheduler.rb start
или script/scheduler.rb stop
).
script/scheduler.rb start -t
обычно используется только для разработчиков, потому что планировщик не работает в фоновом режиме (как демон).
@mweinelt Меня спрашивает, почему вы используете -t
?
JFI: Планировщик у меня отлично работает в фоновом режиме (как демон).
У меня 2.1.1-1505985142.807a1d88.jessie
потому что я забыл закрепить стабильную версию. Параметр -t
должен исходить из служебных файлов, я ничего не менял в этом отношении.
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 $@
Я использую Debian 8 вчера, я тоже пробую версию 9
Но ошибка такая же
Я ничего не изменяю, -t пришло из пакета, а не от меня
Процесс со 100% - это Ruby
скрипт / scheduler.rb start -t
Каждый раз запускается и рушится
из scheduler.rb --help:
Может быть, но Планировщик все время падает
Die Вы думаете, что причина в параметре наверху?
@Hagelsturm
Нет, просто хотел уточнить, что он делает. Не видел ответа Мартини.
Демонизация выполняется с помощью systemd, поэтому обычно это не проблема.
@мартини
Если я правильно помню, используется "-t", потому что systemd считает, что планировщик не работает и останавливается, когда он переходит в фоновый режим из файла модуля.
@mweinelt
Если вы используете 2.1.1, вы находитесь в репозитории разработки.
Нет возможности закрепить там стабильный пакет.
Используйте стабильное репо для получения стабильных пакетов: https://packager.io/gh/zammad/zammad/builds/2414/install/debian-8
@monotek
Установка Type=forking
должна позволить начать без -t
если я не ошибаюсь.
По поводу перехода на стабильную версию (2.0.x):
Мне бы пришлось отменить некоторые миграции, если у меня нет недавней резервной копии, верно?
Спасибо за подсказку. Попробую поменять позже. Не уверен, возможно ли это в packager.io.
хорошо, я использую версию 2.0 сейчас
но теперь у меня проблема с каналом электронной почты
Электронная почта :: Уведомление не может использовать Channel :: Driver :: Smtp: # <: econnrefused: i = "6">
Я не могу проверить настройки, потому что учетная запись пуста :-(
канал активен, но не загружается в течение 1 часа
Канал: Электронная почта :: Уведомление на выходе Невозможно использовать Channel :: Driver :: Smtp: # <: econnrefused: i = "7">
как его можно установить новенькое на кли?
@Hagelsturm попробуйте проверить свои настройки smtp, вероятно, параметр хоста для SMTP в настройках вашего канала электронной почты отсутствует. Кроме того, поскольку ваша проблема - новая проблема, вам следует создать новую проблему?
Всем привет! Здесь та же проблема. Я приезжаю с №1473. Я установил версию 2.0, но не смог добавить новую учетную запись электронной почты в конфигурацию канала электронной почты, возможно, это связано с последним комментарием от @Hagelsturm.
Мне бы пришлось отменить некоторые миграции, если у меня нет недавней резервной копии, верно?
@mweinelt извините, я не видел этого отзыва. На данный момент миграции между стабильной и развивающейся базами данных нет. Так что прямо сейчас вы можете без проблем переключаться между стабильным / основным и разрабатывать.
В любом случае, похоже, я исправил проблему «Плохой файловый дескриптор в PGConsumeInput». Так что, если вы сначала обновите разработку (до перехода обратно в стабильную версию), все будет в порядке!
Спасибо за отзыв!
-Мартин
@Hagelsturm JFI, ваша проблема с электронной почтой
@martini Я могу подтвердить, что обновление
Попробую через немного понизить версию до 2.0.
Самый полезный комментарий
@martini Я могу подтвердить, что обновление
Попробую через немного понизить версию до 2.0.