Forums / Developer / cache issue after redirection on a multisite

cache issue after redirection on a multisite

Author Message

Jerome Buffetaut

Tuesday 03 August 2010 6:51:56 am

Hi everyone,

I am working on an ezpublish multisite (public - marketing - admin )
I have a redirect function on the public site, define in the site.ini file in settings/siteaccess/public/


[SiteSettings]
SiteName=public
SiteURL=****
LoginPage=embedded
IndexPage=/ota/accueil

So, when I load the public page I'm redirect to the module ota/accueil
In this module everything works fine then i call the function



$Module->redirectTo( '/content/view/full/235' ); or
$Module->redirectTo( '/Accueil' );

to redirect users in the normal welcome page.

to this point everything works, but ezpublish create some cache which
corrupt my marketing and admin site. 
The problème is solved when i create the cache files from the marketing site first.

I'm working on ezpublish 4.2, server solaris and db oracle.
The corrupted cache is stored in ezpublish/var/cache/ini
and error is :



Fatal error: eZ Publish did not finish its request

The execution of eZ Publish was abruptly ended, the debug output is present below.

but it's not a timeout probleme because there is no loading, error is displayed imediately.

Thanks for your help, and sorry for my english.




Jerome




 

 

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

Bonjour à tous,

Voila, je travail sur un multi-site ezpublish ( public - marketing - admin )

Sur la partie public, on trouve une redirection défini dans le fichier site.ini dans settings/siteaccess/public/

[SiteSettings]

SiteName=public

SiteURL=****

LoginPage=embedded

IndexPage=/ota/accueil

lorsque l'on charge la page public on est donc dirigé vers un module
(ota/accueil) qui va faire son boulot puis nous rediriger vers la page
d'accueil à l'aide de cette fonction :

$Module->redirectTo( '/content/view/full/235' );

La redirection fonctionne parfaitement mais génère un cache corrompu qui
m'empêche d'accéder aux sites marketing et admin. En revanche si
j'accède d'abord au site marketing le cache se génère correctement.

PS : le fichier cache corrompu se situe dans ezpublish/var/cache/ini/ et l'erreur retourné par ezpublish est :

Fatal error: eZ Publish did not finish its request

The execution of eZ Publish was abruptly ended, the debug output is present below.

Il ne s'agit pas d'un timeout ou d'une requête trop lourde car ezpublish me retourne cette erreur immédiatement.

Y a-t-il un moyen de désactiver le cache lors de la redirection vers le
module ota/accueil mais de le générer uniquement sur le nœud
/content/view/full/235 ?

Merci de votre aide,

Jérôme.



André R.

Tuesday 03 August 2010 1:26:06 pm

Could you either get the error from var/log/error.log or enable DebugOutput (eZ Publish site.ini setting) & display_errors (php's php.ini setting) and get it from output?

why?: it's not normal to get ini cache corruptions, at least I haven't seen it before like this.

If you want to disable ini cache you can however do that with "$GLOBALS['eZINICacheEnabled'] = false;" in your view or in config.php, but it will make it pretty slow and it's not really fixing the problem as I suspect there is some configuration (file permission?) issue or something weird..

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Jerome Buffetaut

Wednesday 04 August 2010 2:22:49 am

So, during my test, I launch my public site which display normally. I have some error like :

Error: eZTemplate @ design/base/override/templates/embed/image.tpl:8[4] Aug 04 2010 12:15:10

No such attribute for array(3): classification
Choose one of following: target, url_id, href

Error: eZTemplate @ design/base/override/templates/embed/image.4] Aug 04 2010 12:15:10

No such attribute for array(3): classification
Choose one of following: target, url_id, href

Error: eZTemplate:ezhttp Aug 04 2010 12:15:10

Unknown get variable 'erreur'

Not very important error.
However when I try to access to the marketing site, i have some errors :

Error: eZINI Aug 04 2010 12:15:17

Undefined variable: 'LogDir' in group 'FileSettings' in site.ini

A lot of eZINI error : undefined variable...

Error: index Aug 04 2010 12:15:17

Undefined module: user

Error: eZExtension::getHandlerClass Aug 04 2010 12:15:17

Unable to find variable FileHandler in section ClusteringSettings in file file.ini

Error: eZLog::writeStorageLog() Aug 04 2010 12:15:17

Couldn't create the log file "var/btel//storage.log"

If i launch the marketing site first, I haven't these bugs.

Thanks for your help.

EDIT : with the command "$GLOBALS['eZINICacheEnabled'] = false;" it works !!!

But I can't allowed me to leave this code like this, as you say it make my site slower but we are on a good way to resolve the problem.

André R.

Wednesday 04 August 2010 7:27:41 am

Couldn't create the log file "var/btel//storage.log"

Two possible hints here, one, the path, is some dir setting setup wrong causing this? (see site.ini\[FileSettings] and compare to default site.ini settings in setting/)

Second, something wrong with permissions on var/* folder maybe?

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Jerome Buffetaut

Wednesday 04 August 2010 8:03:36 am

Hi,

For the permission on var/ folder, I have make chmod 777 on var/* but the probleme is still the same.

Permission on the var/ :
drwxr-xr-x 2 ota ota 512 août 4 16:58 autoload
drwxrwxrwx 4 ota ota 512 août 4 16:58 btel
drwxrwxrwx 3 ota ota 512 août 4 16:58 cache
drwxrwxrwx 4 ota ota 512 août 4 17:39 en
drwxrwxrwx 2 ota ota 512 août 4 16:59 log

For the ini FileSettings, I have an override in settings/override/site.ini.append.php but there is no FileSettings. (is it normal ?)

However I have some siteaccess for each extension which have a site.ini.append.php too

(settings/siteaccess/admin/site.ini..., settings/siteaccess/marketing/site.ini..., settings/siteaccess/public/site.ini... )

In these site.ini.append, I have this settings

[FileSettings]
VarDir=var/btel

I have checked all siteaccess site.ini but no one contain an error like VarDir=var/btel/

Should I have (more/a) FileSettings in the override site.ini ?

EDIT : I have tried to put these options on settings/override/site.ini.append.php :

[FileSettings]
TemporaryPermissions=0777
StorageDirPermissions=0777
StorageFilePermissions=0666
LogFilePermissions=0666
DirDepth=3
CacheDir=cache
LogDir=log
VarDir=var/btel

but it still bugging. Then I have put these same options in each settings/siteaccess/(public/marketing/..)/site.ini.append.php

and ... nothings :s .

André R.

Thursday 05 August 2010 1:51:26 am

Could you try commenting out all your custom FileSettings and thus use defaults? (esp VarDir)

eZ Online Editor 5: http://projects.ez.no/ezoe || eZJSCore (Ajax): http://projects.ez.no/ezjscore || eZ Publish EE http://ez.no/eZPublish/eZ-Publish-Enterprise-Subscription
@: http://twitter.com/andrerom

Jerome Buffetaut

Thursday 05 August 2010 2:40:44 am

I have comment my FileSettings and use the default settings but it still not working.

I may be poorly expressed myself when i displayed the DebugOutput. There is not only the FileSettings which is not defined in my debug output but a lot of conf settings.

I copie/ paste my DebugOutput :

Timing: Aug 05 2010 12:54:32
Script start
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZLog::writeStorageLog() Aug 05 2010 12:54:32
Couldn't create the log file "//storage.log"
Warning: PHP: E_WARNING Aug 05 2010 12:54:32
in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /home/.../ezpublish/index.php on line 114
Warning: PHP: E_WARNING Aug 05 2010 12:54:32
in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /home/.../ezpublish/index.php on line 114
Warning: PHP: E_WARNING Aug 05 2010 12:54:32
in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /home/.../ezpublish/index.php on line 114
Warning: PHP: E_WARNING Aug 05 2010 12:54:32
in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /home/.../ezpublish/index.php on line 114
Warning: PHP: E_WARNING Aug 05 2010 12:54:32
in_array() [<a href='function.in-array'>function.in-array</a>]: Wrong datatype for second argument in /home/.../ezpublish/index.php on line 114
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'DebugAccess' in group 'SiteAccessSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'ExtensionDirectory' in group 'ExtensionSettings' in site.ini
Warning: Aug 05 2010 12:54:32
Extension 'ezbytel' does not exist, looked for directory '/ezbytel'
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZLog::writeStorageLog() Aug 05 2010 12:54:32
Couldn't create the log file "//storage.log"
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'BasketCleanup' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZLog::writeStorageLog() Aug 05 2010 12:54:32
Couldn't create the log file "//storage.log"
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'ModuleRepositories' in group 'ModuleSettings' in module.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'ExtensionDirectory' in group 'ExtensionSettings' in site.ini
Warning: Aug 05 2010 12:54:32
Extension 'ezoe' was reported to have modules but the extension itself does not exist.
Check the setting ModuleSettings/ExtensionRepositories in module.ini for your extensions.
You should probably remove this extension from the list.
Warning: Aug 05 2010 12:54:32
Extension 'ezjscore' was reported to have modules but the extension itself does not exist.
Check the setting ModuleSettings/ExtensionRepositories in module.ini for your extensions.
You should probably remove this extension from the list.
Warning: Aug 05 2010 12:54:32
Extension 'ezota' was reported to have modules but the extension itself does not exist.
Check the setting ModuleSettings/ExtensionRepositories in module.ini for your extensions.
You should probably remove this extension from the list.
Warning: PHP: E_WARNING Aug 05 2010 12:54:32
array_merge() [<a href='function.array-merge'>function.array-merge</a>]: Argument #1 is not an array in /home/.../ezpublish/lib/ezutils/classes/ezmodule.php on line 1322
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'Socket' in group 'DatabaseSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'UseSlaveServer' in group 'DatabaseSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'UseBuiltinEncoding' in group 'DatabaseSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'DebugTransactions' in group 'DatabaseSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'QueryAnalysisOutput' in group 'DatabaseSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'SessionNamePrefix' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'CookieTimeout' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'SessionValidationIpParts' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'SessionValidationForwardedIpParts' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'SessionValidationUseUA' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'SessionTimeout' in group 'Session' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZLog::writeStorageLog() Aug 05 2010 12:54:32
Couldn't create the log file "//storage.log"
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'SystemLocale' in group 'RegionalSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'IndexPage' in group 'SiteSettings' in site.ini
Error: index Aug 05 2010 12:54:32
Undefined module: user
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'ModuleOverrides' in module.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined group: 'FileSettings' in site.ini
Error: eZLog::writeStorageLog() Aug 05 2010 12:54:32
Couldn't create the log file "//storage.log"
Error: eZExtension::getHandlerClass Aug 05 2010 12:54:32
Unable to find variable FileHandler in section ClusteringSettings in file file.ini
Error: eZINI Aug 05 2010 12:54:32
Undefined variable: 'DebugToolbar' in group 'DebugSettings' in site.ini

I have this errors because ezpublish check the settings from the corrupted cache (created when i load my public site), If i load the marketing site first, ini cache is available.

I haven't this probleme when i load directly "ezpublish/index.php/public/Accueil" because there is no redirection in that case. But i need users has been redirect to check some informations.

this address "ezpublish/index.php/public/" redirect toward a module which redirect again to

"ezpublish/index.php/public/Accueil" thanks to this funcion "$Module->redirectTo( '/Accueil' );"

I think the redirection corrupt my ini cache but i am not sure.

I hope my explaination can help you.

Thanks for your attention and your help

"ezpublish/index.php/public/"