session_regenerate_id(): Cannot call session save handler in a recursive manner

Предварительное обсуждение найденных ошибок перед отправкой их авторам фреймворка, а также внесение новых предложений.
Ответить
vtec
Сообщения: 49
Зарегистрирован: 2010.11.16, 10:28

session_regenerate_id(): Cannot call session save handler in a recursive manner

Сообщение vtec »

Помогите решить проблему.
На сервере обновил php до версии 7.1, после этого перестали работать сессии. Версия YII 1.19

При попытке разлогиниться выходит ошибка:
session_regenerate_id(): Cannot call session save handler in a recursive manner
Что может быть? Куда копать? Сессии хранятся в БД.

Trace

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

session_regenerate_id(): Cannot call session save handler in a recursive
manner (/var/www/lib/web/CHttpSession.php:184)
Stack trace:
#0 /var/www/lib/web/auth/CWebUser.php(717):
MyCDbHttpSession->regenerateID()
#1 /var/www/lib/web/auth/CWebUser.php(470): WebUser->changeIdentity()
#2 /var/www/lib/web/auth/CWebUser.php(202): WebUser->restoreFromCookie()
#3 /var/www/lib/base/CModule.php(394): WebUser->init()
#4 /var/www/lib/web/CWebApplication.php(209):
CWebApplication->getComponent()
#5 /var/www/new.atom.ru/protected/components/MyCDbHttpSession.php(70):
CWebApplication->getUser()
#6 unknown(0): MyCDbHttpSession->writeSession()
#7 /var/www/lib/web/CHttpSession.php(184): session_regenerate_id()
#8 /var/www/lib/web/CDbHttpSession.php(102):
MyCDbHttpSession->regenerateID()
#9 /var/www/lib/web/auth/CWebUser.php(717):
MyCDbHttpSession->regenerateID()
#10 /var/www/lib/web/auth/CWebUser.php(470): WebUser->changeIdentity()
#11 /var/www/lib/web/auth/CWebUser.php(202): WebUser->restoreFromCookie()
#12 /var/www/lib/base/CModule.php(394): WebUser->init()
#13 /var/www/lib/base/CModule.php(103): CWebApplication->getComponent()
#14 /var/www/new.atom.ru/protected/views/layouts/main.php(40):
CWebApplication->__get()
#15 /var/www/lib/web/CBaseController.php(126): require()
#16 /var/www/lib/web/CBaseController.php(95):
SiteController->renderInternal()
#17 /var/www/lib/web/widgets/CContentDecorator.php(76):
SiteController->renderFile()
#18 /var/www/lib/web/widgets/CContentDecorator.php(54):
CContentDecorator->decorate()
#19 /var/www/lib/web/widgets/COutputProcessor.php(44):
CContentDecorator->processOutput()
#20 /var/www/lib/web/CBaseController.php(215): CContentDecorator->run()
#21 /var/www/lib/web/CBaseController.php(309): SiteController->endWidget()
#22 /var/www/new.aom.ru/protected/views/layouts/column1.php(18):
SiteController->endContent()
#23 /var/www/lib/web/CBaseController.php(126): require()
#24 /var/www/lib/web/CBaseController.php(95):
SiteController->renderInternal()
#25 /var/www/lib/web/CController.php(787): SiteController->renderFile()
#26 /var/www/new.atom.ru/protected/controllers/SiteController.php(55):
SiteController->render()
#27 /var/www/lib/web/actions/CInlineAction.php(49):
SiteController->actionIndex()
#28 /var/www/lib/web/CController.php(308): CInlineAction->runWithParams()
#29 /var/www/lib/web/CController.php(286): SiteController->runAction()
#30 /var/www/lib/web/CController.php(265):
SiteController->runActionWithFilters()
#31 /var/www/lib/web/CWebApplication.php(282): SiteController->run()
#32 /var/www/lib/web/CWebApplication.php(141):
CWebApplication->runController()
#33 /var/www/lib/base/CApplication.php(185):
CWebApplication->processRequest()
#34 /var/www/new.atom.ru/htdocs/index.php(24): CWebApplication->run()
REQUEST_URI=/
in /var/www/new.atom.ru/protected/components/MyCDbHttpSession.php (70)
in /var/www/new.atom.ru/protected/views/layouts/main.php (40)
in /var/www/new.atom.ru/protected/views/layouts/column1.php (18)

------------------------------------------------------------------------------------------------------

Не удалось выполнить CDbCommand::execute():
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'g3mmlh4paeu16useilp4onbdl6' for key 'PRIMARY'. Выполнявшийся
SQL-запрос: INSERT INTO `user_session` (`id`, `data`, `expire`,
`user_id`) VALUES (:id, :data, :expire, :user_id). Bound with
:id='g3mmlh4paeu16useilp4onbdl6', :data='', :expire=1502702925,
:user_id='1'.
in /var/www/new.atom.ru/protected/components/MyCDbHttpSession.php (70)
in /var/www/new.atom.ru/protected/views/layouts/main.php (56)
in /var/www/new.atom.ru/protected/views/layouts/column1.php (18)
16:04:45.683588	error	application	
CDbCommand не удалось исполнить SQL-запрос:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry
'g3mmlh4paeu16useilp4onbdl6' for key 'PRIMARY'. The SQL statement executed
was: INSERT INTO `user_session` (`id`, `data`, `expire`, `user_id`) VALUES
(:id, :data, :expire, :user_id). Bound with
:id='g3mmlh4paeu16useilp4onbdl6', :data='', :expire=1502702925,
:user_id='1'
in /var/www/new.atom.ru/protected/components/MyCDbHttpSession.php (77)
in /var/www/new.atom.ru/protected/views/layouts/main.php (56)
in /var/www/new.atom.ru/protected/views/layouts/column1.php (18)

vtec
Сообщения: 49
Зарегистрирован: 2010.11.16, 10:28

Re: session_regenerate_id(): Cannot call session save handler in a recursive manner

Сообщение vtec »

Проблема найдена, спасибо.
https://github.com/yiisoft/yii/pull/4168
Ответить