Невозможно изменить пароль пользователя или создать нового пользователя в Tuleap

Я не могу изменить пароль пользователя в качестве вошедшего в систему пользователя, в качестве администратора или в разделе восстановления пароля. Я также не могу создать нового пользователя. Я получаю сообщение об ошибке «Внутренняя ошибка: не удалось обновить пароль». при попытке изменить пароль пользователя через администрацию.

В /var/log/messages нашел следующую ошибку:

nscd: libnss-mysql: mysql_query failed: MySQL server has gone away, trying again (2)

Я не понимаю, как остальной контент сайта все еще работает, и я могу создавать и добавлять вещи, если база данных mysql не работает?!

База данных запущена, и я могу войти в систему, используя учетные данные пользователей базы данных dbauthuser и codendiadm.

Некоторые другие журналы, относящиеся к этому, включают:

/var/спул/почта/код

Fatal error: Uncaught exception 'DataAccessException' with message 'Unable to access the 
database ( - 2013). Please contact your administrator.' in
/usr/share/tuleap/src/common/dao/include/DataAccess.class.php:88
Stack trace:
#0 /usr/share/tuleap/src/common/dao/include/DataAccess.class.php(71):
 DataAccess->reconnect()
#1 /usr/share/tuleap/src/common/dao/CodendiDataAccess.class.php(41):
 DataAccess->DataAccess(Object(DataAccessCredentials), 0)
#2 /usr/share/tuleap/src/common/dao/CodendiDataAccess.class.php(48):
  CodendiDataAccess->__construct()
#3 /usr/share/tuleap/src/common/dao/include/DataAccessObject.class.php(49):
  CodendiDataAccess::instance()
#4 /usr/share/tuleap/src/common/Config/ForgeConfig.php(53):
  DataAccessObject->__construct()
#5 /usr/share/tuleap/src/www/include/pre.php(40):
  ForgeConfig::loadFromDatabase()
#6 /usr/share/tuleap/src/utils/process_system_events.php(23):
  require_once('/usr/share/tule...')
#7 {main}
thrown in /usr/share/tuleap/src/common/dao/include/DataAccess.class.php on line 88

/var/журнал/httpd/error.log

PHP Notice:  DB error ==> UPDATE user SET password='<passwordhash>',
user_pw='<passwordhash>', unix_pw='<passwordhash>', last_pwd_update=1433785478 
WHERE user_id = 102 @@ 
/usr/share/tuleap/src/common/dao/include/DataAccessObject.class.php
at line 147 in /usr/share/tuleap/src/common/dao/include/DataAccessObject.class.php 
on  155, referer: https://domain.com/account/login.php?return_to=%2Fmy%2F

person jahayes91    schedule 08.06.2015    source источник


Ответы (1)


Что касается nscd: libnss-mysql: mysql_query failed: MySQL server has gone away, trying again (2), это звучит подозрительно, но на самом деле это то, как libnss-mysql сообщает вам, что он отключается от базы данных. Это нормальный способ работы и безвредный.

Последнее, про почту, было бы интересно узнать дату/время. По умолчанию каждое воскресенье в 00:45 база данных останавливается на техническое обслуживание, и может появиться это сообщение.

EDIT: (из комментариев)

Судя по логам, которые вы установили, установка была произведена частично 14, 15, 19 и 20 мая! Трудно сказать, что такое правильное состояние БД. Чтобы принудительно «повторить» обновление базы данных, вы должны удалить соответствующие записи в таблице forge_upgrade_bucket (номер 185 для проблем с паролем). Если бы я был на вашем месте, я бы просмотрел все обновления БД после 14 мая и проверил, согласуется ли моя БД с этим.

person Manuel VACELET    schedule 09.06.2015
comment
Спасибо за ваш ответ, я только что проверил, у меня версия 8.2.99.33, но проблема все еще остается. Я только что проверил время и дату в почте, и это, как вы предложили, 00:45 в воскресенье. - person jahayes91; 09.06.2015
comment
Вы запустили forgeupgrade после обновления пакетов? - person Manuel VACELET; 09.06.2015
comment
у меня нет. Я только что попробовал совет, изложенный здесь, и до сих пор нет удача. - person jahayes91; 09.06.2015
comment
Не могли бы вы вставить сюда команду, которую вы вводите для forgeupgrade, а также вывод? - person Manuel VACELET; 09.06.2015
comment
Вывод выглядит следующим образом: INFO - System up-to-date - person jahayes91; 09.06.2015
comment
Не могли бы вы подключиться к базе данных и запустить пользователя desc; - person Manuel VACELET; 09.06.2015
comment
Вам не хватает некоторых обновлений БД (поле пароля), которые должны были быть запущены forgeupgrade. Не могли бы вы запустить /usr/lib/forgeupgrade/bin/forgeupgrade --config=/etc/codendi/forgeupgrade/config.ini already-applied - person Manuel VACELET; 10.06.2015
comment
Я запустил скрипт, который дал мне следующий выход. Только что попытался изменить пароль пользователя, и я все еще получаю ту же ошибку. - person jahayes91; 10.06.2015
comment
Проблема в том, что все обновления отмечены как пропущенные, это нормально, когда вы устанавливаете платформу, но это проблема после: 2015-06-08 19:15:14 00:00:00 Skipped 185 /usr/share/tuleap/src/db/mysql/updates/2015/201505051630_add_new_password_field.php не могли бы вы подробно рассказать, как/когда вы выполнили установку? - person Manuel VACELET; 10.06.2015
comment
Установку делал 25.05.15. Я следовал этим инструкциям. - person jahayes91; 10.06.2015
comment
Судя по логам, которые вы установили, установка была произведена частично 14, 15, 19 и 20 мая! Трудно сказать, что такое правильное состояние БД. Чтобы принудительно воспроизвести обновление базы данных, вы должны удалить соответствующие записи в таблице forge_upgrade_bucket (номер 185 для проблем с паролем). Если бы я был на вашем месте, я бы просмотрел все обновления БД после 14 мая и проверил, согласуется ли моя БД с этим. - person Manuel VACELET; 11.06.2015
comment
Отличный совет. Я удалил две записи из последнего обновления и повторно запустил обновление кузницы, и теперь могу менять пароли и создавать новых пользователей. Спасибо большое за вашу помощь. - person jahayes91; 13.06.2015
comment
Отлично, я вставил совет в ответ, было бы здорово, если бы вы могли принять его для отслеживания людей, которые могут столкнуться с той же проблемой. - person Manuel VACELET; 16.06.2015