2FR3 Posted May 7, 2013 Share Posted May 7, 2013 (edited) Bonjour, Cela fait deux fois que je me fais réveiller en pleine nuit pour une panne qui est la meme que la derniere fois. Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /var/www/clients/client1/web2/web/cache/class_index.php on line 601 'TaxRule' => 'override/classes/tax/TaxRule.php', 'TaxRuleCore' => 'classes/tax/TaxRule.php', erride/classes/tax/TaxRulesGroup.php', 'TaxRulesGroupCore' => 'classes/tax/TaxRulesGroup.php', 'TaxRulesTaxManager' => 'override/classes/tax/TaxRulesTaxManager.php', ... 'Zone' => 'override/classes/Zone.php', 'ZoneCore' => 'classes/Zone.php', ); ?>asses/Zone.php', ); ?> Quesqui peut provoquer ce genre de panne SVP. Edited June 1, 2013 by 2FR3 (see edit history) Link to comment Share on other sites More sharing options...
2FR3 Posted May 7, 2013 Author Share Posted May 7, 2013 Petit up pour m'aider a trouver la piste SVP. Link to comment Share on other sites More sharing options...
2FR3 Posted May 8, 2013 Author Share Posted May 8, 2013 Cela vient de se reproduire Link to comment Share on other sites More sharing options...
2FR3 Posted May 14, 2013 Author Share Posted May 14, 2013 J'ai pas d'amis !! Link to comment Share on other sites More sharing options...
2FR3 Posted May 31, 2013 Author Share Posted May 31, 2013 Petit up plz ! Je me demande : Si j’enlève le droit a l’écriture pour ne plus avoir le soucis, quesque je risque ? Pourquoi ce fichier a t'il besoin des droits en écriture ? Link to comment Share on other sites More sharing options...
2FR3 Posted May 31, 2013 Author Share Posted May 31, 2013 La boutique a encore plantée. Les logs indiquent [error] mod_fcgid: process et nous avons parfois le proc qui s'affole a 100% avec php-cgi. Je ne sais pas si c'est lié ... Link to comment Share on other sites More sharing options...
2FR3 Posted June 2, 2013 Author Share Posted June 2, 2013 (edited) 97 Vues et pas une contrib ... Edited June 3, 2013 by 2FR3 (see edit history) Link to comment Share on other sites More sharing options...
miklbet Posted June 3, 2013 Share Posted June 3, 2013 Salut ! J'ai le meme probleme que moi et cela me rend fou ! As tu trouver une solution ? Interdire led roit en ecriture est il possible pour ce fichier ? Je ne sais pas quoi faire ma boutique est en 1.4.5.3 Cdt Link to comment Share on other sites More sharing options...
emily_d Posted June 3, 2013 Share Posted June 3, 2013 (edited) A vue d'oeil, c'est la méthode generateIndex dans classes/Autoload.php qui crée le fichier cache_index.php. Il faudrait logger les écritures de $content pour voir quand et pourquoi se produit le problème. Normalement y a un regex qu'est censé prévenir l'écriture de lignes incorrectes, mais visiblement dans ton cas le test d'intégrité ne fonctionne pas. // If the file content end with PHP tag, integrity of the file is ok if (preg_match('#\?>\s*$#', file_get_contents($filename))) $integrity_is_ok = true; Ce serait intéressant de voir pourquoi le regex laisse passer une ligne mal écrite. Le $content est crée à partir des classes qui se trouvent dans ces dossiers : $this->getClassesFromDir('classes/'), $this->getClassesFromDir('override/classes/'), $this->getClassesFromDir('controllers/'), $this->getClassesFromDir('override/controllers/') On peut soupçonner qu'à un moment une classe est mal écrite mais il faudrait savoir laquelle. Aussi il faudrait voir si y a pas un module qui fait appel à cette méthode et qui pourrait fausser les choses. Ou encore si le fichier est modifié directement par un autre programme. Edited June 3, 2013 by emily_d (see edit history) Link to comment Share on other sites More sharing options...
2FR3 Posted June 3, 2013 Author Share Posted June 3, 2013 Merci beaucoup, cela donne deja une piste interessante. La condition est respecter dans mon exemple // If the file content end with PHP tag, integrity of the file is ok if (preg_match('#\?>\s*$#', file_get_contents($filename))) $integrity_is_ok = true; Donc ca passe. Après pour log un fichier particulier, tu t'y prends comment? Je connais les logs niveau serveur, qui donnent rien dans ce cas de figure, apache et php continuent a tourner tranquilou. Link to comment Share on other sites More sharing options...
emily_d Posted June 3, 2013 Share Posted June 3, 2013 Par logger, je veux juste dire qu'il faut sauvegarder dans un fichier le contenu de la valeur $content mais plus précisément les appels à $this->getClassesFromDir(…) A priori, y a deux endroits où le contenu du fichier peut être corrompu : Soit ici : $classes = array_merge( $this->getClassesFromDir('classes/'), $this->getClassesFromDir('override/classes/'), $this->getClassesFromDir('controllers/'), $this->getClassesFromDir('override/controllers/') ); Soit juste après : $content = '<?php return '.var_export($classes, true).'; ?>'; var_export est une fonction système qui doit retourner du code PHP valide, j’ai donc dû mal à voir comment le fichier se corrompt. Comme hypothèse je dirai qu’un fichier override contient du contenu qui fait ‘planter’ l’expression régulière qui se trouve dans ::getClassesFromDir. Le problème avec cette hypothèse, c’est qu’elle n’explique pas pourquoi le fichier class_index est correctement régénéré lorsqu’il est effacé. Mystère et boule de gomme. Link to comment Share on other sites More sharing options...
2FR3 Posted June 3, 2013 Author Share Posted June 3, 2013 Franchement, je ne sais comment te remercier, en comparant l'autoload avec une 1.5.4.1 (mon client est en 1.5.3.1), je me suis aperçu de l'erreur. Maintenant, il n'est pas overidé, comment cela a pu ce passer ? On va voir si nous avons résolu ma détresse, mais y'a pas de raison ! Link to comment Share on other sites More sharing options...
Eliquidediscount Posted June 5, 2013 Share Posted June 5, 2013 bonjour, pourvez vous me donnez la marche a suivre que je puisse tester car novice dans ce domaine Link to comment Share on other sites More sharing options...
miklbet Posted June 5, 2013 Share Posted June 5, 2013 J'ai ce problème de manière reccurente je suis en 1.5.3.1 mais je n'ose pas mettre à jour par peur de "bug", comment faire en sorte que ce probleme de se reproduise plus ? je ne 'ai pas trop compris ce qu'il faut modifier ! Link to comment Share on other sites More sharing options...
miklbet Posted June 5, 2013 Share Posted June 5, 2013 Mettre le fichier cache_index.php en lecture seul resoudrais t il le pb ? Link to comment Share on other sites More sharing options...
2FR3 Posted June 5, 2013 Author Share Posted June 5, 2013 Non, j'ai essayé, ca a planté aussi! Link to comment Share on other sites More sharing options...
emily_d Posted June 6, 2013 Share Posted June 6, 2013 Mettre le fichier cache_index.php en lecture seul resoudrais t il le pb ? Tu peux essayer de commenter cette partie de generateIndex() else { /* // Let's write index content in cache file // In order to be sure that this file is correctly written, a check is done on the file content $loop_protection = 0; do { $integrity_is_ok = false; file_put_contents($filename, $content, LOCK_EX); if ($loop_protection++ > 10) break; // If the file content end with PHP tag, integrity of the file is ok if (preg_match('#\?>\s*$#', file_get_contents($filename))) $integrity_is_ok = true; } while (!$integrity_is_ok); if (!$integrity_is_ok) { file_put_contents($filename, '<?php return array(); ?>', LOCK_EX); // Cannot use PrestaShopException in this context die('Your file '.$filename.' is corrupted. Please remove this file, a new one will be regenerated automatically'); } */ } Ça devrait stopper la régénération de cache_index.php. Mais bon c'est un gros hack et ça ne résout rien. Link to comment Share on other sites More sharing options...
ShowYou Posted July 4, 2013 Share Posted July 4, 2013 Bonjour, Juste une possibilité... Sur un serveur dédié, cela peut provenir d'un manque d'espace disque !! Link to comment Share on other sites More sharing options...
2FR3 Posted July 6, 2013 Author Share Posted July 6, 2013 Pas concevable dans mon cas ^^ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now