не работает клиентский модуль

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
thunderbird
OTRS Новобранец
Сообщения: 4
Зарегистрирован: 03 сен 2013, 16:58

не работает клиентский модуль

Сообщение thunderbird » 04 сен 2013, 09:38

Добрый день! Возникла проблема, уже голову разбил в ее решении, может кто сталкивался.
Стояла у нас otrs 3.1.9, в целом есть не просила, но хотелось обновиться на новую ветку, что и было сделано после не особо длительного теста.
Выбор пал на 3.2.6, хоть за время теста и вышли более новые версии, но эта уже точно была проверена на полную работоспособность.
Обновлял банально: сделал дамп базы, начисто установил 3.2.6, залил дамп, сконвертировал скриптом DBUpdate, прикрутил аутентификацию через ldap, всё завелось без проблем, вздохнул полной грудью и начал радоваться, но счастье было недолгим, выяснилось что не работает клиентский модуль, точнее сам customer.pl отрабатывает, но сразу же после аутентификации клиента, слетает в internal server error. По логам админки вижу что аутентификация была успешна, более ничего, в httpd-errors такая картина:

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

[Wed Sep 04 09:18:06 2013] [error] [client 10.0.0.113] Can't store REGEXP items at /usr/local/lib/perl5/site_perl/5.14.2/mach/Storable.pm line 340, at /opt/otrs-3.2.6/bin/cgi-bin/../../Kernel/System/AuthSession/DB.pm line 601., referer: http://sd.krzn.ru/otrs/customer.pl
[Wed Sep 04 09:18:06 2013] [error] [client 10.0.0.113] Premature end of script headers: customer.pl, referer: http://sd.krzn.ru/otrs/customer.pl
В defaults.pm нахожу альтернативный способ хранения сессии(FS), меняю, картина чуть меняется, но в целом все та же:

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

[Wed Sep 04 09:20:42 2013] [error] [client 10.0.0.113] Can't store REGEXP items at /usr/local/lib/perl5/site_perl/5.14.2/mach/Storable.pm line 340, at /opt/otrs-3.2.6/bin/cgi-bin/../../Kernel/System/AuthSession/FS.pm line 276., referer: http://sd.krzn.ru/otrs/customer.pl
[Wed Sep 04 09:20:42 2013] [error] [client 10.0.0.113] Premature end of script headers: customer.pl, referer: http://sd.krzn.ru/otrs/customer.pl
Первая мысль, ну раз перл ругается, может с модулями что-то не то, запускаю CheckModules, не находит YAML::XS, устанавливаю, никаких изменений.
Лезу в конфики FS.pm и DB.pm на указанные строки, в обоих случаях там вот это:

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

# dump the data
my $DataContent = Storable::nfreeze( \%Data );
Найдя спецификации модуля Storable выясняю что nfreeze то же самое что и freeze, но может сохранять не только локально, пробую поменять на freeze, без изменений.
Что дальше? Иду по указанной 340 строке в Storable.pm, там вижу

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

# Call C routine mstore or net_mstore, depending on network order
eval { $ret = &$xsptr($self) };
Вспоминается поговорка "смотрю в книгу, вижу фигу", все равно ничего не понимаю что это и зачем, вряд ли смогу как-то исправить если даже ошибка в коде.

Дохожу до банального решения, заглянуть на тестовый сервак, где на такой же freebsd с таким же ядром, такой же версией апача, перла, mysql и вообще можно сказать они близнецы братья, всё работает.
Проблема в разнице, иду в cpan, вывожу в файл версии модулей на обоих серваках, смотрю diff, устраняю разницу, все равно не работает.

Так как без бэкапов никуда, иду в бэкапы, смотрю там файлик DB.pm, в нем вместо 7 сотен строк всего 3 сотни, то есть отличаются катастрофически, но основное изменение сразу бросается в глаза, в старом вообще нет

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

use Storable.pm
То есть эта конструкция ранее не использовалась.
Ну и да, самое важное, гуглинг по ошибкам ничего толком не дал.

Уж простите за полотно, но старался изложить проблему наиболее полно.
OTRS 3.2.6 FreeBSD 9.0

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

Re: не работает клиентский модуль

Сообщение alexus » 04 сен 2013, 10:03

Я бы для очистки совести /opt/otrs/bin/otrs.SetPermissions.pl сделал. Было бы неплохо еще логи Апача посмотреть
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

thunderbird
OTRS Новобранец
Сообщения: 4
Зарегистрирован: 03 сен 2013, 16:58

Re: не работает клиентский модуль

Сообщение thunderbird » 04 сен 2013, 10:20

alexus писал(а):Я бы для очистки совести /opt/otrs/bin/otrs.SetPermissions.pl сделал. Было бы неплохо еще логи Апача посмотреть
Делал SetPermissions, в логах апача при попытке захода валится это:

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

[Wed Sep 04 09:18:06 2013] [error] [client 10.0.0.113] Can't store REGEXP items at /usr/local/lib/perl5/site_perl/5.14.2/mach/Storable.pm line 340, at /opt/otrs-3.2.6/bin/cgi-bin/../../Kernel/System/AuthSession/DB.pm line 601., referer: http://sd.krzn.ru/otrs/customer.pl
[Wed Sep 04 09:18:06 2013] [error] [client 10.0.0.113] Premature end of script headers: customer.pl, referer: http://sd.krzn.ru/otrs/customer.pl
Вот только что обновил php до более актуальной версии(5.5), и только после вспомнил что otrs то в принципе плевать на пхп. Пойду ещё перл обновлю, чем черт не шутит.
OTRS 3.2.6 FreeBSD 9.0

thunderbird
OTRS Новобранец
Сообщения: 4
Зарегистрирован: 03 сен 2013, 16:58

Re: не работает клиентский модуль

Сообщение thunderbird » 04 сен 2013, 12:12

Обновил перл до последней версии в портах - без изменений. :(
OTRS 3.2.6 FreeBSD 9.0

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

Re: не работает клиентский модуль

Сообщение alexus » 04 сен 2013, 13:25

А на какой платформе система? Подпись бы сделали... ;)
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

thunderbird
OTRS Новобранец
Сообщения: 4
Зарегистрирован: 03 сен 2013, 16:58

Re: не работает клиентский модуль

Сообщение thunderbird » 04 сен 2013, 14:15

alexus писал(а):А на какой платформе система? Подпись бы сделали... ;)
freebsd 9.0.

P.S. проблему решил, если это можно назвать решением.
Почитав http://perldoc.perl.org/Storable.html нашел параметр

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

$Storable::forgive_me
, который если true, как я понимаю заставляет интерпретатор perl'а, а точнее модуль Storable игнорировать передачу не нравящихся ему параметров. Название отличное :lol:
OTRS 3.2.6 FreeBSD 9.0

Ответить