{"action":"created","issue":{"url":"https://api.github.com/repos/magento/magento2/issues/12603","repository_url":"https://api.github.com/repos/magento/magento2","labels_url":"https://api.github.com/repos/magento/magento2/issues/12603/labels{/name}","comments_url":"https://api.github.com/repos/magento/magento2/issues/12603/comments","events_url":"https://api.github.com/repos/magento/magento2/issues/12603/events","html_url":"https://github.com/magento/magento2/issues/12603","id":280570020,"number":12603,"title":"SessionManager fails under PHP 7.2","user":{"login":"Alanaktion","id":236490,"avatar_url":"https://avatars3.githubusercontent.com/u/236490?v=4","gravatar_id":"","url":"https://api.github.com/users/Alanaktion","html_url":"https://github.com/Alanaktion","followers_url":"https://api.github.com/users/Alanaktion/followers","following_url":"https://api.github.com/users/Alanaktion/following{/other_user}","gists_url":"https://api.github.com/users/Alanaktion/gists{/gist_id}","starred_url":"https://api.github.com/users/Alanaktion/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Alanaktion/subscriptions","organizations_url":"https://api.github.com/users/Alanaktion/orgs","repos_url":"https://api.github.com/users/Alanaktion/repos","events_url":"https://api.github.com/users/Alanaktion/events{/privacy}","received_events_url":"https://api.github.com/users/Alanaktion/received_events","type":"User","site_admin":false},"labels":[{"id":688811200,"url":"https://api.github.com/repos/magento/magento2/labels/G1%20Passed","name":"G1 Passed","color":"0e8a16","default":false},{"id":161563561,"url":"https://api.github.com/repos/magento/magento2/labels/needs%20update","name":"needs update","color":"b60205","default":false}],"state":"closed","locked":false,"assignee":{"login":"orlangur","id":642698,"avatar_url":"https://avatars2.githubusercontent.com/u/642698?v=4","gravatar_id":"","url":"https://api.github.com/users/orlangur","html_url":"https://github.com/orlangur","followers_url":"https://api.github.com/users/orlangur/followers","following_url":"https://api.github.com/users/orlangur/following{/other_user}","gists_url":"https://api.github.com/users/orlangur/gists{/gist_id}","starred_url":"https://api.github.com/users/orlangur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orlangur/subscriptions","organizations_url":"https://api.github.com/users/orlangur/orgs","repos_url":"https://api.github.com/users/orlangur/repos","events_url":"https://api.github.com/users/orlangur/events{/privacy}","received_events_url":"https://api.github.com/users/orlangur/received_events","type":"User","site_admin":false},"assignees":[{"login":"orlangur","id":642698,"avatar_url":"https://avatars2.githubusercontent.com/u/642698?v=4","gravatar_id":"","url":"https://api.github.com/users/orlangur","html_url":"https://github.com/orlangur","followers_url":"https://api.github.com/users/orlangur/followers","following_url":"https://api.github.com/users/orlangur/following{/other_user}","gists_url":"https://api.github.com/users/orlangur/gists{/gist_id}","starred_url":"https://api.github.com/users/orlangur/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/orlangur/subscriptions","organizations_url":"https://api.github.com/users/orlangur/orgs","repos_url":"https://api.github.com/users/orlangur/repos","events_url":"https://api.github.com/users/orlangur/events{/privacy}","received_events_url":"https://api.github.com/users/orlangur/received_events","type":"User","site_admin":false}],"milestone":null,"comments":4,"created_at":"2017-12-08T17:59:23Z","updated_at":"2017-12-13T00:02:02Z","closed_at":"2017-12-11T14:24:54Z","author_association":"CONTRIBUTOR","body":"### Preconditions\r\n1. Magento 2.2\r\n2. PHP 7.2\r\n\r\n### Steps to reproduce\r\n1. Install Magento 2.2 on PHP 7.1\r\n2. Upgrade to PHP 7.2 (installing Mcrypt via a PHP shim or PECL)\r\n3. Ignore deprecation warnings to bypass errors on `each()` calls\r\n4. Attempt to load any page\r\n\r\n### Expected result\r\nPage loads properly\r\n\r\n### Actual result\r\nPHP throws an exception in the SessionManager class when `ini_set()` is called to set the `user` session save handler.\r\n\r\nThis seems to be caused by an undocumented breaking change in PHP 7.2, which started in [PHP bug 73100](https://bugs.php.net/bug.php?id=73100&edit=3) and led to [a commit](http://git.php.net/?p=php-src.git;a=commit;h=a93a51c3bf4ea1638ce0adc4a899cb93531b9f0d) removing the option to set the `user` session save handler. Instead, users are now required to explicitly call `set_save_handler()`. This means the `ini_set()` call changing the save handler no longer works correctly.\r\n\r\n<details><summary>Stack Trace</summary><p>\r\n\r\n```\r\nException #0 (Exception): Recoverable Error: ini_set(): Cannot set 'user' save handler by ini_set() or session_module_name() in /vendor/magento/framework/Session/SessionManager.php on line 580\r\n#0 [internal function]: Magento\\Framework\\App\\ErrorHandler->handler(4096, 'ini_set(): Cann...', '/mage2....', 580, Array)\r\n#1 /vendor/magento/framework/Session/SessionManager.php(580): ini_set('session.save_ha...', 'user')\r\n#2 /vendor/magento/framework/Session/SessionManager.php(184): Magento\\Framework\\Session\\SessionManager->initIniOptions()\r\n#3 /vendor/magento/framework/Interception/Interceptor.php(58): Magento\\Framework\\Session\\SessionManager->start()\r\n#4 /vendor/magento/framework/Interception/Interceptor.php(138): Magento\\Framework\\Session\\Generic\\Interceptor->___callParent('start', Array)\r\n#5 /vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Framework\\Session\\Generic\\Interceptor->Magento\\Framework\\Interception\\{closure}()\r\n#6 /generated/code/Magento/Framework/Session/Generic/Interceptor.php(52): Magento\\Framework\\Session\\Generic\\Interceptor->___callPlugins('start', Array, Array)\r\n#7 /vendor/magento/framework/Session/SessionManager.php(130): Magento\\Framework\\Session\\Generic\\Interceptor->start()\r\n#8 /generated/code/Magento/Framework/Session/Generic/Interceptor.php(14): Magento\\Framework\\Session\\SessionManager->__construct(Object(Magento\\Framework\\App\\Request\\Http), Object(Magento\\Framework\\Session\\SidResolver\\Proxy), Object(Magento\\Framework\\Session\\Config), Object(Magento\\Framework\\Session\\SaveHandler), Object(Magento\\Framework\\Session\\Validator), Object(Magento\\Framework\\Session\\Storage), Object(Magento\\Framework\\Stdlib\\Cookie\\PhpCookieManager), Object(Magento\\Framework\\Stdlib\\Cookie\\CookieMetadataFactory), Object(Magento\\Framework\\App\\State))\r\n#9 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(111): Magento\\Framework\\Session\\Generic\\Interceptor->__construct(Object(Magento\\Framework\\App\\Request\\Http), Object(Magento\\Framework\\Session\\SidResolver\\Proxy), Object(Magento\\Framework\\Session\\Config), Object(Magento\\Framework\\Session\\SaveHandler), Object(Magento\\Framework\\Session\\Validator), Object(Magento\\Framework\\Session\\Storage), Object(Magento\\Framework\\Stdlib\\Cookie\\PhpCookieManager), Object(Magento\\Framework\\Stdlib\\Cookie\\CookieMetadataFactory), Object(Magento\\Framework\\App\\State))\r\n#10 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(66): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->createObject('Magento\\\\Framewo...', Array)\r\n#11 /vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->create('Magento\\\\Framewo...')\r\n#12 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(144): Magento\\Framework\\ObjectManager\\ObjectManager->get('Magento\\\\Framewo...')\r\n#13 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(230): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->resolveArgument(Array, 'Magento\\\\Framewo...', NULL, 'session', 'Magento\\\\Store\\\\A...')\r\n#14 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->resolveArgumentsInRuntime('Magento\\\\Store\\\\A...', Array, Array)\r\n#15 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->_resolveArguments('Magento\\\\Store\\\\A...', Array, Array)\r\n#16 /vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->create('Magento\\\\Store\\\\A...')\r\n#17 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(144): Magento\\Framework\\ObjectManager\\ObjectManager->get('Magento\\\\Store\\\\A...')\r\n#18 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(230): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->resolveArgument(Array, 'Magento\\\\Framewo...', NULL, 'redirect', 'Magento\\\\Framewo...')\r\n#19 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->resolveArgumentsInRuntime('Magento\\\\Framewo...', Array, Array)\r\n#20 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->_resolveArguments('Magento\\\\Framewo...', Array, Array)\r\n#21 /vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->create('Magento\\\\Framewo...')\r\n#22 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(144): Magento\\Framework\\ObjectManager\\ObjectManager->get('Magento\\\\Framewo...')\r\n#23 /vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(230): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->resolveArgument(Array, 'Magento\\\\Framewo...', NULL, 'context', 'Magento\\\\Cms\\\\Con...')\r\n#24 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): Magento\\Framework\\ObjectManager\\Factory\\AbstractFactory->resolveArgumentsInRuntime('Magento\\\\Cms\\\\Con...', Array, Array)\r\n#25 /vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->_resolveArguments('Magento\\\\Cms\\\\Con...', Array, Array)\r\n#26 /vendor/magento/framework/ObjectManager/ObjectManager.php(56): Magento\\Framework\\ObjectManager\\Factory\\Dynamic\\Developer->create('Magento\\\\Cms\\\\Con...', Array)\r\n#27 /vendor/magento/framework/App/ActionFactory.php(40): Magento\\Framework\\ObjectManager\\ObjectManager->create('Magento\\\\Cms\\\\Con...')\r\n#28 /vendor/magento/framework/App/Router/Base.php(297): Magento\\Framework\\App\\ActionFactory->create('Magento\\\\Cms\\\\Con...')\r\n#29 /vendor/magento/framework/App/Router/Base.php(158): Magento\\Framework\\App\\Router\\Base->matchAction(Object(Magento\\Framework\\App\\Request\\Http), Array)\r\n#30 /vendor/magento/framework/App/FrontController.php(50): Magento\\Framework\\App\\Router\\Base->match(Object(Magento\\Framework\\App\\Request\\Http))\r\n#31 /vendor/magento/framework/Interception/Interceptor.php(58): Magento\\Framework\\App\\FrontController->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\r\n#32 /vendor/magento/framework/Interception/Interceptor.php(138): Magento\\Framework\\App\\FrontController\\Interceptor->___callParent('dispatch', Array)\r\n#33 /vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(94): Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}(Object(Magento\\Framework\\App\\Request\\Http))\r\n#34 /vendor/magento/framework/Interception/Interceptor.php(135): Magento\\Store\\App\\FrontController\\Plugin\\RequestPreprocessor->aroundDispatch(Object(Magento\\Framework\\App\\FrontController\\Interceptor), Object(Closure), Object(Magento\\Framework\\App\\Request\\Http))\r\n#35 /vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(73): Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}(Object(Magento\\Framework\\App\\Request\\Http))\r\n#36 /vendor/magento/framework/Interception/Interceptor.php(135): Magento\\PageCache\\Model\\App\\FrontController\\BuiltinPlugin->aroundDispatch(Object(Magento\\Framework\\App\\FrontController\\Interceptor), Object(Closure), Object(Magento\\Framework\\App\\Request\\Http))\r\n#37 /vendor/magento/framework/Interception/Interceptor.php(153): Magento\\Framework\\App\\FrontController\\Interceptor->Magento\\Framework\\Interception\\{closure}(Object(Magento\\Framework\\App\\Request\\Http))\r\n#38 /generated/code/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\\Framework\\App\\FrontController\\Interceptor->___callPlugins('dispatch', Array, NULL)\r\n#39 /vendor/magento/framework/App/Http.php(135): Magento\\Framework\\App\\FrontController\\Interceptor->dispatch(Object(Magento\\Framework\\App\\Request\\Http))\r\n#40 /vendor/magento/framework/App/Bootstrap.php(256): Magento\\Framework\\App\\Http->launch()\r\n#41 /pub/index.php(37): Magento\\Framework\\App\\Bootstrap->run(Object(Magento\\Framework\\App\\Http))\r\n#42 {main}\r\n```\r\n\r\n</p></details>"},"comment":{"url":"https://api.github.com/repos/magento/magento2/issues/comments/351235999","html_url":"https://github.com/magento/magento2/issues/12603#issuecomment-351235999","issue_url":"https://api.github.com/repos/magento/magento2/issues/12603","id":351235999,"user":{"login":"MaxMilton","id":14946546,"avatar_url":"https://avatars1.githubusercontent.com/u/14946546?v=4","gravatar_id":"","url":"https://api.github.com/users/MaxMilton","html_url":"https://github.com/MaxMilton","followers_url":"https://api.github.com/users/MaxMilton/followers","following_url":"https://api.github.com/users/MaxMilton/following{/other_user}","gists_url":"https://api.github.com/users/MaxMilton/gists{/gist_id}","starred_url":"https://api.github.com/users/MaxMilton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MaxMilton/subscriptions","organizations_url":"https://api.github.com/users/MaxMilton/orgs","repos_url":"https://api.github.com/users/MaxMilton/repos","events_url":"https://api.github.com/users/MaxMilton/events{/privacy}","received_events_url":"https://api.github.com/users/MaxMilton/received_events","type":"User","site_admin":false},"created_at":"2017-12-13T00:02:02Z","updated_at":"2017-12-13T00:02:02Z","author_association":"NONE","body":"Thank you @ishakhsuvarov "}}
{"actor":{"display_login":"MaxMilton"}}