zendframework / zend-servicemanager

ServiceManager component from Zend Framework
BSD 3-Clause "New" or "Revised" License
188 stars 89 forks source link

Bug on Zend Framework unserialize kills session user #282

Closed AndreLZGava closed 5 years ago

AndreLZGava commented 5 years ago

Provide a narrative description of what you are trying to accomplish.

Sometimes some user are using our system (we've developed it on ZF2) then user reports that when he upload a file (usually a image, png, jpeg on ajax) after that on submit system returns an error, session user is killed and he needs to start everything again, in the second time everything goes fine. I discovered that after submit file is saved on our server. But it still dont work as expected. One of my workmate told me that probably this erros is caused by user using word, than when he copy and past in our system it comes with a strange caracther and then system goes down. Ive used libre office, linux and MAC, and this never happens to me when I was testing with this, just happend once when I was using Windows and Word. I've found this issue https://github.com/zendframework/zendframework/issues/4386 , this problems seems mine, but is not the same errors.

Code to reproduce the issue

In our Graylog it saves the entire error: /vendor/zendframework/zend-servicemanager/src/ServiceManager.php on line 946 error message : An exception was raised while creating "Session"; no instance returned

URL: http://www.mydomain.edu.br:443/project/acesso/index/id/219/layout/dialog
Erro: An exception was raised while creating "Session"; no instance returned
Zend\ServiceManager\Exception\ServiceNotCreatedExceptionArquivo
/var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:946
MensagemAn exception was raised while creating "Session"; no instance returnedDetalhes do Erro
#0 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(1099): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Object(Closure), 'session', 'Session')
#1 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('session', 'Session')
#2 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('Session', 'session')
#3 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)
#4 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Service/Service.php(234): Zend\ServiceManager\ServiceManager->get('Session')
#5 /var/www/mydomain.edu.br/public_html/project/module/Application/src/Application/Service/Usuario.php(381): Core\Service\Service->getService('Session')
#6 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(144): Application\Service\Usuario->isAppAccess()
#7 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(235): Core\Controller\PublicController->isAppAccess()
#8 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/DispatchListener.php(93): Core\Controller\PublicController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#9 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#10 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#11 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#12 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#13 /var/www/mydomain.edu.br/public_html/project/index.php(11): Zend\Mvc\Application->run()
#14 {main}
Error anteriores:
UnexpectedValueExceptionArquivo
/var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-session/src/SessionManager.php:109
MensagemError at offset 137634 of 177290 bytesDetalhes do Erro
#0 [internal function]: ArrayObject->unserialize('x:i:2;a:28:{s:1...')
#1 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-session/src/SessionManager.php(109): session_start()
#2 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-session/src/AbstractContainer.php(78): Zend\Session\SessionManager->start()
#3 /var/www/mydomain.edu.br/public_html/project/module/Core/Module.php(113): Zend\Session\AbstractContainer->__construct('mydomain')
#4 [internal function]: Core\Module->Core\{closure}(Object(Zend\ServiceManager\ServiceManager), 'session', 'Session')
#5 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(939): call_user_func(Object(Closure), Object(Zend\ServiceManager\ServiceManager), 'session', 'Session')
#6 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(1099): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Object(Closure), 'session', 'Session')
#7 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('session', 'Session')
#8 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('Session', 'session')
#9 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)
#10 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Service/Service.php(234): Zend\ServiceManager\ServiceManager->get('Session')
#11 /var/www/mydomain.edu.br/public_html/project/module/Application/src/Application/Service/Usuario.php(381): Core\Service\Service->getService('Session')
#12 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(144): Application\Service\Usuario->isAppAccess()
#13 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(235): Core\Controller\PublicController->isAppAccess()
#14 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/DispatchListener.php(93): Core\Controller\PublicController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#15 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#16 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#17 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#18 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#19 /var/www/mydomain.edu.br/public_html/project/index.php(11): Zend\Mvc\Application->run()
#20 {main}Parâmetros da requisição:
Array
(
    [controller] => acesso
    [action] => index
    [module] => application
    [moduleUri] => application
    [page] => 1
    [id] => 219
    [layout] => dialog
)
level
3
line
946
message
An exception was raised while creating "Session"; no instance returned
project-version
Project 1.4.2
module
application
source
www.mydomain.edu.br
version
1.0
2019-05-21 16:24:19.870 www.mydomain.edu.br
An exception was raised while creating "Session"; no instance returned
 08114550-7bfe-11e9-8510-0050569d9fe4
Received by
GELF UDP on  ad89d4c8 / morse.mydomain.edu.br
Stored in index
graylog2_6
action
auth
controller
api-access
facility
project-production
file
/var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php
full_message
URL: http://www.mydomain.edu.br:443/project/api-access/auth?token=5eeb098979de8442006128c5ec9e5b5b&url=http://bell.mydomain.edu.br/ocomon/includes/common/login.php
Erro: An exception was raised while creating "Session"; no instance returned
Zend\ServiceManager\Exception\ServiceNotCreatedExceptionArquivo
/var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php:946
MensagemAn exception was raised while creating "Session"; no instance returnedDetalhes do Erro
#0 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(1099): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Object(Closure), 'session', 'Session')
#1 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('session', 'Session')
#2 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('Session', 'session')
#3 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)
#4 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Service/Service.php(234): Zend\ServiceManager\ServiceManager->get('Session')
#5 /var/www/mydomain.edu.br/public_html/project/module/Application/src/Application/Service/Usuario.php(381): Core\Service\Service->getService('Session')
#6 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(144): Application\Service\Usuario->isAppAccess()
#7 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(235): Core\Controller\PublicController->isAppAccess()
#8 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/DispatchListener.php(93): Core\Controller\PublicController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#9 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#10 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#11 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#12 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#13 /var/www/mydomain.edu.br/public_html/project/index.php(11): Zend\Mvc\Application->run()
#14 {main}
Error anteriores:
UnexpectedValueExceptionArquivo
/var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-session/src/SessionManager.php:109
MensagemError at offset 81848 of 121605 bytesDetalhes do Erro
#0 [internal function]: ArrayObject->unserialize('x:i:2;a:35:{s:1...')
#1 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-session/src/SessionManager.php(109): session_start()
#2 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-session/src/AbstractContainer.php(78): Zend\Session\SessionManager->start()
#3 /var/www/mydomain.edu.br/public_html/project/module/Core/Module.php(113): Zend\Session\AbstractContainer->__construct('mydomain')
#4 [internal function]: Core\Module->Core\{closure}(Object(Zend\ServiceManager\ServiceManager), 'session', 'Session')
#5 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(939): call_user_func(Object(Closure), Object(Zend\ServiceManager\ServiceManager), 'session', 'Session')
#6 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(1099): Zend\ServiceManager\ServiceManager->createServiceViaCallback(Object(Closure), 'session', 'Session')
#7 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(638): Zend\ServiceManager\ServiceManager->createFromFactory('session', 'Session')
#8 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(598): Zend\ServiceManager\ServiceManager->doCreate('Session', 'session')
#9 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-servicemanager/src/ServiceManager.php(530): Zend\ServiceManager\ServiceManager->create(Array)
#10 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Service/Service.php(234): Zend\ServiceManager\ServiceManager->get('Session')
#11 /var/www/mydomain.edu.br/public_html/project/module/Application/src/Application/Service/Usuario.php(381): Core\Service\Service->getService('Session')
#12 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(144): Application\Service\Usuario->isAppAccess()
#13 /var/www/mydomain.edu.br/public_html/project/module/Core/src/Core/Controller/PublicController.php(235): Core\Controller\PublicController->isAppAccess()
#14 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/DispatchListener.php(93): Core\Controller\PublicController->dispatch(Object(Zend\Http\PhpEnvironment\Request), Object(Zend\Http\PhpEnvironment\Response))
#15 [internal function]: Zend\Mvc\DispatchListener->onDispatch(Object(Zend\Mvc\MvcEvent))
#16 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(444): call_user_func(Array, Object(Zend\Mvc\MvcEvent))
#17 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-eventmanager/src/EventManager.php(205): Zend\EventManager\EventManager->triggerListeners('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#18 /var/www/mydomain.edu.br/public_html/project/vendor/zendframework/zend-mvc/src/Application.php(314): Zend\EventManager\EventManager->trigger('dispatch', Object(Zend\Mvc\MvcEvent), Object(Closure))
#19 /var/www/mydomain.edu.br/public_html/project/index.php(11): Zend\Mvc\Application->run()
#20 {main}Parâmetros da requisição:
Array
(
    [controller] => api-access
    [action] => auth
    [module] => Api
    [moduleUri] => api
)

Expected results

just works as expected without this error

Actual results

User is logged out

Ocramius commented 5 years ago

Mentioned in your stack trace:

#0 [internal function]: ArrayObject->unserialize('x:i:2;a:35:{s:1...')

Your stored session is likely corrupted.

Closing, since this bug is not in this component, nor caused by the session component itself.

Try extracting that serialized string and see if it looks broken, or contains symbols that cannot be autoloaded.