Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Запросы на решение проблем

Модератор: ykolesnikov

Ответить
lefmihalch
OTRS Новобранец
Сообщения: 18
Зарегистрирован: 20 апр 2017, 16:57

Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение lefmihalch » 23 окт 2018, 17:51

Вчера обновился с 5 (не помню какой) на 6.0.12 и всё вроде хорошо, но есть один мерзкий нюанс - исходящая почта не уходит.
То есть висят исходящие письма в очереди вечно.

При этом в логах daemon жалуется на отсутствие возможности подключиться к БД через сокет (ERROR: OTRS-otrs.Daemon.pl Can't connect to local MySQL server through socket).
Это при том, что возможность-то у него такая точно есть.

Подскажите, что за беда и как побороть её?

В логах демона вот такая вот фигня:

Код: Выделить всё

////////////////////////////////////////
// SchedulerTaskWorkerERR-1540298716.log
////////////////////////////////////////
   
[Tue Oct 23 15:45:06 2018] otrs.Daemon.pl: DBI connect('database=otrs_production;host=localhost;mysql_socket=/var/lib/mysql/mysql.sock','otrs',...) failed: Can't connect to local My$
ERROR: OTRS-otrs.Daemon.pl - Daemon Kernel::System::Daemon::DaemonModules::SchedulerTaskWorker-33 Perl: 5.16.3 OS: linux Time: Tue Oct 23 15:45:06 2018

 Message: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

 Traceback (3185):
   Module: Kernel::System::DB::Ping Line: 1782
   Module: Kernel::System::Daemon::DaemonModules::SchedulerTaskWorker::PreRun Line: 122
   Module: (eval) Line: 314
   Module: main::Start Line: 314
   Module: /opt/otrs//bin/otrs.Daemon.pl Line: 135

Код: Выделить всё

////////////////////////////////////////////////////
//SchedulerGenericAgentTaskManagerERR-1540298712.log
////////////////////////////////////////////////////

[Tue Oct 23 15:45:01 2018] otrs.Daemon.pl: DBI connect('database=otrs_production;host=localhost;mysql_socket=/var/lib/mysql/mysql.sock','otrs',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at /opt/otrs/Kernel/System/DB.pm line 204.
ERROR: OTRS-otrs.Daemon.pl - Daemon Kernel::System::Daemon::DaemonModules::SchedulerGenericAgentTaskManager-33 Perl: 5.16.3 OS: linux Time: Tue Oct 23 15:45:01 2018

 Message: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

 Traceback (2902):
   Module: Kernel::System::DB::Ping Line: 1782
   Module: Kernel::System::Daemon::DaemonModules::SchedulerGenericAgentTaskManager::PreRun Line: 90
   Module: (eval) Line: 314
   Module: main::Start Line: 314
   Module: /opt/otrs//bin/otrs.Daemon.pl Line: 135
Это при том, что Database::Check нормально коннектится к базе:

Код: Выделить всё

[otrs@otrs otrs]$ bin/otrs.Console.pl Maint::Database::Check
Trying to connect to database 'DBI:mysql:database=otrs_production;host=localhost;mysql_socket=/var/lib/mysql/mysql.sock' with user 'otrs'...
Connection successful.
Права на сокет у пользователя otrs есть - это проверил в первую очередь.
Пароль от БД в конфиге правильный: веб-фронт работает и руками из командной строки тоже нормально все коннектится посредством mysql -u otrs -p.

mariadb при этом запущена. Вот такие наши доказательства:

Код: Выделить всё

[root@otrs my.cnf.d]# systemctl status mariadb.service
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2018-10-23 15:45:09 MSK; 1h 9min ago
  Process: 2941 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
  Process: 2910 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
 Main PID: 2940 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─2940 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─3138 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mar...

Oct 23 15:45:02 otrs.exprem.dom systemd[1]: Starting MariaDB database server...
Oct 23 15:45:02 otrs.exprem.dom mariadb-prepare-db-dir[2910]: Database MariaDB is probably initialized in /var/lib/mysql already, nothing is done.
Oct 23 15:45:02 otrs.exprem.dom mariadb-prepare-db-dir[2910]: If this is not the case, make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.
Oct 23 15:45:02 otrs.exprem.dom mysqld_safe[2940]: 181023 15:45:02 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Oct 23 15:45:02 otrs.exprem.dom mysqld_safe[2940]: 181023 15:45:02 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Oct 23 15:45:09 otrs.exprem.dom systemd[1]: Started MariaDB database server.
и

Код: Выделить всё

[root@otrs my.cnf.d]# ps -ax | grep 'mysql'
 2940 ?        Ss     0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
 3138 ?        Sl     0:13 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
 7344 pts/0    S+     0:00 grep --color=auto mysql
В my.cnf не дефолтных параметра только три:

Код: Выделить всё

[root@otrs my.cnf.d]# cat /etc/my.cnf.d/zotrs.cnf
[mysqld]
max_allowed_packet   = 64M
query_cache_size     = 64M
innodb_log_file_size = 128M
Окружение (свежий Centos 7):

Код: Выделить всё

[root@otrs my.cnf.d]# uname -a
Linux otrs.exprem.dom 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

[root@otrs my.cnf.d]# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built:   Apr 20 2018 18:10:38

[root@otrs my.cnf.d]# mysql --version
mysql  Ver 15.1 Distrib 5.5.60-MariaDB, for Linux (x86_64) using readline 5.1

[root@otrs my.cnf.d]# perl --version

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi
(with 33 registered patches, see perl -V for more detail)

машина - виртуальный хост на vmware vsphere

lefmihalch
OTRS Новобранец
Сообщения: 18
Зарегистрирован: 20 апр 2017, 16:57

Re: Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение lefmihalch » 23 окт 2018, 18:14

В сборе данных для поддержки всё зеленое, кроме

Код: Выделить всё

Размер файла журнала InnoDB (128 MB)
Значение параметра innodb_log_file_size должно быть больше 256 МВ.
увеличил до 512.
Естественно, ничего не изменилось...

lefmihalch
OTRS Новобранец
Сообщения: 18
Зарегистрирован: 20 апр 2017, 16:57

Re: Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение lefmihalch » 23 окт 2018, 18:24

Запустил отправку руками

Код: Выделить всё

[sadovskylm@otrs ~]$ sudo su otrs
[sudo] password for sadovskylm:
[otrs@otrs sadovskylm@exprem.dom]$ /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --send
и почта пошла.
Это омерзительно... Получается, что в 6.0.12 тупо поломатый Daemon.pl что ли?..

Воткнул в кронтаб этот вызов, но это богопротивный костыль и вообще не по-христиански!
Может есть какое-то более грубокомысленное решение?

lefmihalch
OTRS Новобранец
Сообщения: 18
Зарегистрирован: 20 апр 2017, 16:57

Re: Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение lefmihalch » 24 окт 2018, 11:05

Еще выяснилось, что scripts/DBUpdate-to-6.pl не создал какую-то таблицу customer_preferences.

В результате при ответах на тикеты агенты получали вот такой болт:

Код: Выделить всё

-e: DBD::mysql::st execute failed: Table 'otrs_production.customer_preferences' doesn't exist at /opt/otrs/Kernel/System/DB.pm line 678.
ERROR: OTRS-CGI-33 Perl: 5.18.2 OS: linux Time: Fri Oct 19 14:19:46 2018
Пришлось создать руками, предварительно скопипастив пачку строк по созданию этой таблицы из otrs-schema.mysql.sql

6ка, то есть, сырая еще :)

alexus
OTRS Гуру
Сообщения: 4649
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 23 раза
Поблагодарили: 24 раза

Re: Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение alexus » 27 окт 2018, 12:17

Мы не давно обновляли 4->5->6.0.12 - всё нормально обновилось, только с кастомом повозились немного. Но выше указанных ошибок не было. В целом 6ка нормально работает.
С уважением,
Алексей Юсов

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

lefmihalch
OTRS Новобранец
Сообщения: 18
Зарегистрирован: 20 апр 2017, 16:57

Re: Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение lefmihalch » 27 окт 2018, 18:09

а СУБД у вас которая? my или maria?
может демон с нашей машей как-то плохо дружит?

alexus
OTRS Гуру
Сообщения: 4649
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 23 раза
Поблагодарили: 24 раза

Re: Обновление с otrs5 на otrs6.0.12 - Daemon не коннектится в mysql

Сообщение alexus » 27 окт 2018, 18:16

Код: Выделить всё

Database Size (37.888 GB)
Default Storage Engine (InnoDB)
Table Storage Engine
Database Version (MariaDB 5.5.56)
С уважением,
Алексей Юсов

Prod: OTRS ITSM 5.0.14 on CentOS 7 x64 Linux with MySQL 5.7

Radiant System OTRS Intergrator RU
Radiant System OTRS Intergrator EN
Хотите внедрить OTRS? Спросите меня как!
Следите за нашими новостями на Facebook

Ответить