In-Portal Issue Tracker - In-Portal CMS
Viewing Issue Advanced Details
1048 [In-Portal CMS] Caching System bug report always 2011-05-04 15:41 2011-12-18 15:06
needs work 5.1.2  
Fixing fatal error on content language negotiation when memcached is used
0001048: Using "Content Language Negotiation" along with Memcache cold start gives Fatal Error
I have "Content Language Negotiation" and memory caching enabled. When I restarted Memcached server and then visited Front-end with empty url, e.g. then redirect was made, since my "Accept-Language" header matched non-default language.

Because I have no cache, then kApplication::RewriteListeners array was empty and attempt to build redirect link resulted in fatal error listed below:

Notice: Undefined index: m in ...\core\kernel\application.php on line 1953

Fatal error: Method name must be a string in .../core/kernel/application.php on line 1955

I suggest following fixing approach:
1. place return ; after each kApplication::Redirect method call
2. when !$this->Application->InitDone and redirect attempt is made, then schedule redirect, but don't perform
3. when init finishes and there is a scheduled redirect, then perform it

Here are the places, when redirects happen:
* Redirect on Session Expiration
* Redirect on non-rewritten url
* Redirect on language negotiation
* Redirect on missing item’s view permission
* Redirect on category import completion
* Redirect on module install finished
* Redirect on site domain mismatch
* Redirect on category cache updated finish
* Redirect on request event processed
* Redirect on CSV import complete
* Redirect on install complete
* Redirect on login required template
* Redirect on SSL mode mismatch
* Redirect on email queue processing finished
* Redirect on url ending mismatch
* Redirect on template compilation finished
Issue History
2011-12-18 15:06 Dmitry Target Version 5.2.0 => Icebox
2011-12-06 12:21 Dmitry Assigned To => alex
2011-12-06 12:21 Dmitry Status active => needs work
2011-11-01 08:41 alex Note Added: 0004110
2011-10-22 05:39 alex Estimate Points => 2
2011-09-26 04:52 alex Time Estimate Added 2
2011-09-23 20:55 Dmitry Target Version Icebox => 5.2.0
2011-05-04 15:41 alex New Issue
2011-05-04 15:41 alex Reference =>
2011-05-04 15:41 alex Change Log Message => Fixing fatal error on content language negotiation when memcached is used

2011-11-01 08:41   
This might not be the right way to fix this. We should move all code that does redirects during initialization into 1 place.