Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redis session concurrency error not correctly handled (intermittent "Area Code Is Not Set" report) #19207

Closed
convenient opened this issue Nov 14, 2018 · 18 comments
Labels
Component: Framework/Session Component: Setup Fixed in 2.3.x The issue has been fixed in 2.3 release line Issue: Clear Description Gate 2 Passed. Manual verification of the issue description passed Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Issue: Format is valid Gate 1 Passed. Automatic verification of issue format passed Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release

Comments

@convenient
Copy link
Contributor

convenient commented Nov 14, 2018

Preconditions

  1. Magento 2.1.15 (although I believe this will affect 2.2)
  2. php 7.0
  3. Use redis for sessions

Steps to reproduce

  1. Trigger a redis ConcurrentConnectionsExceededException when loading a web page, instructions for emulating this error are included in the section titled "To emulate locally"

Expected result

  1. A redis session error is reported, clearly highlighting the error.

Actual result

  1. Area code is not set report is generated. This error is seemingly unrelated making the actual issue hard to diagnose and fix.

Notes and explanation

I've spent the last few days debugging a randomly occurring report page.

a:4:{i:0;s:20:"Area code is not set";i:1;s:5126:"#0 /Users/lukerodgers/src/magento2/vendor/magento/module-customer/Model/Plugin/CustomerNotification.php(66): Magento\Framework\App\State->getAreaCode()
#1 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Interceptor.php(123): Magento\Customer\Model\Plugin\CustomerNotification->beforeDispatch(Object(Magento\Cms\Controller\Index\Index\Interceptor), Object(Magento\Framework\App\Request\Http))
#2 /Users/lukerodgers/src/magento2/var/generation/Magento/Cms/Controller/Index/Index/Interceptor.php(39): Magento\Cms\Controller\Index\Index\Interceptor->___callPlugins('dispatch', Array, Array)
#3 /Users/lukerodgers/src/magento2/vendor/magento/framework/App/FrontController.php(55): Magento\Cms\Controller\Index\Index\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#4 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Interceptor.php(74): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#5 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(70): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#6 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'requestPreproce...')
#7 /Users/lukerodgers/src/magento2/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(94): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#8 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#9 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'install')
#10 /Users/lukerodgers/src/magento2/vendor/magento/framework/Module/Plugin/DbStatusValidator.php(69): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#11 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\Framework\Module\Plugin\DbStatusValidator->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#12 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(63): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#13 /Users/lukerodgers/src/magento2/vendor/magento/module-page-cache/Model/App/FrontController/VarnishPlugin.php(55): Magento\Framework\Interception\Chain\Chain->Magento\Framework\Interception\Chain\{closure}(Object(Magento\Framework\App\Request\Http))
#14 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Chain/Chain.php(67): Magento\PageCache\Model\App\FrontController\VarnishPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#15 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\Interception\Chain\Chain->invokeNext('Magento\\Framewo...', 'dispatch', Object(Magento\Framework\App\FrontController\Interceptor), Array, 'front-controlle...')
#16 /Users/lukerodgers/src/magento2/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(69): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#17 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Interceptor.php(142): Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#18 /Users/lukerodgers/src/magento2/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#19 /Users/lukerodgers/src/magento2/vendor/magento/framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#20 /Users/lukerodgers/src/magento2/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#21 /Users/lukerodgers/src/magento2/pub/index.php(37): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#22 {main}";s:3:"url";s:15:"/?no_cache=true";s:11:"script_name";s:10:"/index.php";}
  • The error message is "Area Code is not set".
  • The error is intermittent and hard to reproduce, and sometimes takes many page refreshes to occur.
  • The error does not always occur on the same page, it seemed to be random pages.

Through a lot of file_put_contents logging I managed to track down the issue. It was that the Magento\Framework\App\State object which threw the exception was a different instance than the one configured in Magento\Framework\App\Http::launch which had the area code set. 💥

Here's the code journey for how this error can occur, and a way of how to demonstrate it locally. I am referring to code in 2.1.15 but others have seen it in the 2.2 series as well.

TL;DR to fix this error report on your website

Increase your redis max_concurrency in app/etc/env.php and flush your config cache. It fixed the issue (session locking) for me.

To emulate locally

Go into Cm\RedisSession\Handler and amend read to throw the exception.

    public function read($sessionId)
    {
+       throw new ConcurrentConnectionsExceededException();

Load up your homepage and see the Area Code Is Not Set report generated.

Broken journey explanation

https://github.com/magento/magento2/blob/2.1.15/lib/internal/Magento/Framework/App/Bootstrap.php#L249-L270

The application bootstrap goes through the process of instantiating the object manager, launching the application, and sending the response (or handling errors).

https://github.com/magento/magento2/blob/2.1.15/lib/internal/Magento/Framework/App/Bootstrap.php#L229-L241

This section instantiates the object manager, creates the Magento\Framework\App\Http which then creates Magento\Framework\App\State as a dependency (with no area code set).

https://github.com/magento/magento2/blob/2.1.15/lib/internal/Magento/Framework/App/Http.php#L128-L135

The application is launched and the area code is set against the Magento\Framework\App\State object. As this is a singleton we should have the area code set for the entirety of the request. The request is then dispatched.

https://github.com/magento/magento2/blob/2.1.15/lib/internal/Magento/Framework/Session/SessionManager.php#L167-L189

Now that the request is underway the SessionManager will initialise (with session_start) and try to read your session information.

https://github.com/magento/magento2/blob/2.1.15/lib/internal/Magento/Framework/Session/SaveHandler/Redis.php#L43-L50

This is the section of code which actually tries to read the session. The error here is in the handling of ConcurrentConnectionsExceededException, the catch requires the errors/503.php page but does not stop the program execution.

https://github.com/magento/magento2/blob/2.1.15/pub/errors/503.php#L1-L12

The errors/503.php creates an error processor, processes the error, and sends the response.

https://github.com/magento/magento2/blob/2.1.15/pub/errors/processorFactory.php#L21-L27

The processor factory creates a new instance of the object manager using the ObjectManagerFactory, meaning all shared instances from the previous object manager are no longer relevant for this instance.

https://github.com/magento/magento2/blob/2.1.15/lib/internal/Magento/Framework/App/ObjectManagerFactory.php#L182-L183

Even worse, in the background of the ObjectManagerFactory it overrides the global reference to the object manager.

This means that

  • We had part of our application initialised with one object manager, the State was created and an area code was set.
  • A redis error was thrown and errors/503.php was required
    • A new object manager was instantiated and set to be the shared global one.
    • No area code is set against State because this only occurs in the Magento\Framework\App\Http::launch function
    • Headers and content were sent by errors/503.php
  • The request is allowed to continue processing PHP code after this point because there is nothing terminating the request after errors/503.php was required.
  • The request continues to process "as normal", but with the object manager created by the error handler, the one without an area code.
  • Any code currently holding a reference to the first object manager will continue to use it.
  • Other magento code attempts to get the area code, can't find it because it is using the new object manager, generates a report highlighting the wrong area of code as the problem.

Proposed code change

Essentially we tried to throw an error, failed, and a different error was triggered from a different part of the application because we had two versions of the object manager in memory.

As far as I can see only two parts of the application require errors/503.php in this manner.

screenshot 2018-11-14 at 10 36 20

  • The http app uses it in the error handling of a request.
  • The redis read handler has the issue that I've demonstrated above.

I propose we pass back the exception from the redis handler to the http app rather than trying to trigger a 503 page manually, this will terminate the request and generate a usable error report.

//Magento\Framework\Session\SaveHandler
    public function read($sessionId)
    {
        try {
            return parent::read($sessionId);
        } catch (ConcurrentConnectionsExceededException $e) {
+           throw $e;
-           require $this->filesystem->getDirectoryRead(DirectoryList::PUB)->getAbsolutePath('errors/503.php');
        }
    }
a:4:{i:0;s:0:"";i:1;s:6680:"#0 /Users/lukerodgers/src/magento2/vendor/magento/framework/Session/SaveHandler/Redis.php(46): Cm\RedisSession\Handler->read('oh8dob2oqbuuin3...')
#1 /Users/lukerodgers/src/magento2/vendor/magento/framework/Session/SaveHandler.php(93): Magento\Framework\Session\SaveHandler\Redis->read('oh8dob2oqbuuin3...')
#2 [internal function]: Magento\Framework\Session\SaveHandler->read('oh8dob2oqbuuin3...')
#3 /Users/lukerodgers/src/magento2/vendor/magento/framework/Session/SessionManager.php(189): session_start()
#4 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Interceptor.php(146): Magento\Framework\Session\SessionManager->start()
#5 /Users/lukerodgers/src/magento2/var/generation/Magento/Backend/Model/Auth/Session/Interceptor.php(169): Magento\Backend\Model\Auth\Session\Interceptor->___callPlugins('start', Array, Array)
#6 /Users/lukerodgers/src/magento2/vendor/magento/framework/Session/SessionManager.php(130): Magento\Backend\Model\Auth\Session\Interceptor->start()
#7 /Users/lukerodgers/src/magento2/vendor/magento/module-backend/Model/Auth/Session.php(97): 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))
#8 /Users/lukerodgers/src/magento2/var/generation/Magento/Backend/Model/Auth/Session/Interceptor.php(14): Magento\Backend\Model\Auth\Session->__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), Object(Magento\Framework\Acl\Builder\Proxy), Object(Magento\Backend\Model\Url), Object(Magento\Backend\App\Config))
#9 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(111): Magento\Backend\Model\Auth\Session\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), Object(Magento\Framework\Acl\Builder\Proxy), Object(Magento\Backend\Model\Url), Object(Magento\Backend\App\Config))
#10 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(66): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('Magento\\Backend...', Array)
#11 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Backend...')
#12 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(144): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Backend...')
#13 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(232): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Backend...', NULL, 'authStorage', 'Magento\\Backend...')
#14 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime('Magento\\Backend...', Array, Array)
#15 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\\Backend...', Array, Array)
#16 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Backend...')
#17 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(144): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Backend...')
#18 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(232): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument(Array, 'Magento\\Backend...', NULL, 'auth', 'Magento\\Staging...')
#19 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(34): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime('Magento\\Staging...', Array, Array)
#20 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php(59): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments('Magento\\Staging...', Array, Array)
#21 /Users/lukerodgers/src/magento2/vendor/magento/framework/ObjectManager/ObjectManager.php(71): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Magento\\Staging...')
#22 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/PluginList/PluginList.php(232): Magento\Framework\ObjectManager\ObjectManager->get('Magento\\Staging...')
#23 /Users/lukerodgers/src/magento2/vendor/magento/framework/Interception/Interceptor.php(121): Magento\Framework\Interception\PluginList\PluginList->getPlugin('Magento\\Framewo...', 'staging_preview...')
#24 /Users/lukerodgers/src/magento2/var/generation/Magento/Framework/App/FrontController/Interceptor.php(26): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#25 /Users/lukerodgers/src/magento2/vendor/magento/framework/App/Http.php(135): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#26 /Users/lukerodgers/src/magento2/vendor/magento/framework/App/Bootstrap.php(258): Magento\Framework\App\Http->launch()
#27 /Users/lukerodgers/src/magento2/pub/index.php(37): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http))
#28 {main}";s:3:"url";s:15:"/?no_cache=true";s:11:"script_name";s:10:"/index.php";}

Let me know your feedback, if this approach is agreed I will raise a PR.

@magento-engcom-team magento-engcom-team added the Issue: Format is valid Gate 1 Passed. Automatic verification of issue format passed label Nov 14, 2018
@magento-engcom-team
Copy link
Contributor

magento-engcom-team commented Nov 14, 2018

Hi @convenient. Thank you for your report.
To help us process this issue please make sure that you provided the following information:

  • Summary of the issue
  • Information on your environment
  • Steps to reproduce
  • Expected and actual results

Please make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, please, add a comment to the issue:

@magento-engcom-team give me $VERSION instance

where $VERSION is version tags (starting from 2.2.0+) or develop branches (for example: 2.3-develop).
For more details, please, review the Magento Contributor Assistant documentation.

@convenient do you confirm that you was able to reproduce the issue on vanilla Magento instance following steps to reproduce?

  • yes
  • no

@convenient
Copy link
Contributor Author

To confirm i have replicated this on a vanilla 2.1.15 EE install, although I do not believe that this is related to EE code in any way.

@convenient convenient changed the title Redis concurrency error not correctly handled (intermittent "Area Code Is Not Set" report) Redis session concurrency error not correctly handled (intermittent "Area Code Is Not Set" report) Nov 15, 2018
@ghost ghost self-assigned this Nov 16, 2018
@magento-engcom-team
Copy link
Contributor

Hi @engcom-backlog-nazar. Thank you for working on this issue.
In order to make sure that issue has enough information and ready for development, please read and check the following instruction: 👇

  • 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).

    DetailsIf the issue has a valid description, the label Issue: Format is valid will be added to the issue automatically. Please, edit issue description if needed, until label Issue: Format is valid appears.

  • 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue. If the report is valid, add Issue: Clear Description label to the issue by yourself.

  • 3. Add Component: XXXXX label(s) to the ticket, indicating the components it may be related to.

  • 4. Verify that the issue is reproducible on 2.3-develop branch

    Details- Add the comment @magento-engcom-team give me 2.3-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.3-develop branch, please, add the label Reproduced on 2.3.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!

  • 5. Verify that the issue is reproducible on 2.2-develop branch.

    Details- Add the comment @magento-engcom-team give me 2.2-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.2-develop branch, please add the label Reproduced on 2.2.x

  • 6. Add label Issue: Confirmed once verification is complete.

  • 7. Make sure that automatic system confirms that report has been added to the backlog.

@ghost
Copy link

ghost commented Nov 16, 2018

HI seems like this have been fixed in 2.3-develop -> #17608 now i'm have error
selection_207

@ghost ghost added the Issue: Clear Description Gate 2 Passed. Manual verification of the issue description passed label Nov 16, 2018
@convenient
Copy link
Contributor Author

@engcom-backlog-nazar Agreed. On the 2.3 branch I got a similar sensible report generated.

I believe the Area code is not set issue only occurs when using PHP 7.0, I've just ran a few tests and the issue is reproducible on 2.2 with php 7.0.

As magento 2.3 relies on PHP 7.1 or higher it will not be affected.

@ghost ghost added Fixed in 2.3.x The issue has been fixed in 2.3 release line Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release labels Nov 16, 2018
@ghost
Copy link

ghost commented Nov 16, 2018

@convenient, i'm closing this as this was fixed in 2.3-develop. if someone in future have same issue we can reopen this one.

@ghost ghost closed this as completed Nov 16, 2018
@convenient
Copy link
Contributor Author

@engcom-backlog-nazar Are github issues now only interested in 2.3?

I thought 2.2 was still supported until December 2019?

@ghost
Copy link

ghost commented Nov 16, 2018

@convenient i'm just tested on 2.2-dev seems like really this occurs only with php7.0 version, yes 2.2 supported, but this is specified bug, only with specific php version. Maybe leave this open.

@ghost ghost reopened this Nov 16, 2018
@ghost ghost added Component: Setup Component: Framework/Session Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed labels Nov 16, 2018
@ghost ghost removed their assignment Nov 16, 2018
@RaFr
Copy link

RaFr commented Dec 18, 2018

i have this random "Failed to read session data" error too in 2.2.7 with php 7.1 and Redis for sessions. it randomly happens when opening frontend pages. almost no traffic on the server.
screenshot_2018-12-18 https dv

@convenient
Copy link
Contributor Author

@RaFr This issue is more about the symptom being garbled and displayed as "area code not set" for session concurrency errors. You're definitely getting a session_start error clearly displayed.

Possibly you're experiencing #12362 which seems to have had a resurgence?

@RaFr
Copy link

RaFr commented Dec 18, 2018

@convenient i am sorry. there is so many threads about session errors and redis, each thread points to the other, that i got lost between all of them. i saw an error report similar to mine few posts above, so i posted here.

@convenient
Copy link
Contributor Author

@RaFr no worries, i hope the other thread helps as there won't be much more in this issue to help you out I think :)

@ghost ghost self-assigned this Dec 27, 2018
@magento-engcom-team
Copy link
Contributor

Hi @engcom-backlog-andrii. Thank you for working on this issue.
Looks like this issue is already verified and confirmed. But if your want to validate it one more time, please, go though the following instruction:

  • 1. Add/Edit Component: XXXXX label(s) to the ticket, indicating the components it may be related to.

  • 2. Verify that the issue is reproducible on 2.3-develop branch

    Details- Add the comment @magento-engcom-team give me 2.3-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.3-develop branch, please, add the label Reproduced on 2.3.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!

  • 3. Verify that the issue is reproducible on 2.2-develop branch.

    Details- Add the comment @magento-engcom-team give me 2.2-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.2-develop branch, please add the label Reproduced on 2.2.x

  • 4. If the issue is not relevant or is not reproducible any more, feel free to close it.

@ghost ghost removed their assignment Dec 28, 2018
@engcom-Delta engcom-Delta self-assigned this Aug 2, 2019
@m2-assistant
Copy link

m2-assistant bot commented Aug 2, 2019

Hi @engcom-Delta. Thank you for working on this issue.
Looks like this issue is already verified and confirmed. But if you want to validate it one more time, please, go though the following instruction:

  • 1. Add/Edit Component: XXXXX label(s) to the ticket, indicating the components it may be related to.

  • 2. Verify that the issue is reproducible on 2.3-develop branch

    Details- Add the comment @magento give me 2.3-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.3-develop branch, please, add the label Reproduced on 2.3.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and stop verification process here!

  • 3. If the issue is not relevant or is not reproducible any more, feel free to close it.


@engcom-Delta
Copy link
Contributor

Hi @convenient
Thank you for contribution and collaboration!

We are not able to reproduce this issue on the lates 2.3-develop branch by provided steps.

We are closing this issue due to branch 2.2-develop was closed and Magento no longer accepts pull requests and issues to the v2.2 release lines to focus all development efforts on v2.3.
See Accepted pull requests and ported code for more details

If you still faced this issue on 2.3 please create a new Issue with all required details according to Issue reporting guidelines

@VeronikaYarats
Copy link
Contributor

The issue is still reproducible. We have encountered a Redis concurrency limit exceeded case and see the "Area code not set" report.
After the headers and content for the 503 error are sent, the application continues to run.
It was really hard to find that the problem is in 'ConcurrentConnectionsExceededException'. The logs just contains exception with "Area code not set". I created a duplicate issue since this one is already closed.

@hostep
Copy link
Contributor

hostep commented Apr 12, 2024

Possibly fixed in Magento 2.4.7? Which includes this change: 4d223b1

@convenient
Copy link
Contributor Author

Holy moly. They finally did it. Thanks @hostep

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Framework/Session Component: Setup Fixed in 2.3.x The issue has been fixed in 2.3 release line Issue: Clear Description Gate 2 Passed. Manual verification of the issue description passed Issue: Confirmed Gate 3 Passed. Manual verification of the issue completed. Issue is confirmed Issue: Format is valid Gate 1 Passed. Automatic verification of issue format passed Reproduced on 2.2.x The issue has been reproduced on latest 2.2 release
Projects
None yet
Development

No branches or pull requests

6 participants