From b447428632cd842f241a7b6b6865a2b08b797492 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Tue, 27 Oct 2015 13:52:13 +0000 Subject: [PATCH] r17234 a introduit un include_spip() au debut de base/connect_sql.php, ce qui etait une erreur car ce fichier est inclus par inc_version avant toute initialisation du core et chargement des caches. Du coup chaque hit provoquait une invalidation du chemin car find_in_path appele trop tot croyait que son find etait nouveau, donc le hit se finissait par une ecriture du fichier tmp/cache/chemin.txt. Comme ce fichier peut etre assez gros (>100ko) et ecrit en posant un verrou, cela impactait la performance par un debit d'ecriture sur le disque et des possibles attentes entre hit concourants. Bug repere par nicod en 3.0 et confirme par RealET en 3.1 --- ecrire/base/connect_sql.php | 2 +- ecrire/inc/utils.php | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/ecrire/base/connect_sql.php b/ecrire/base/connect_sql.php index 9020e89ea0..d291594315 100644 --- a/ecrire/base/connect_sql.php +++ b/ecrire/base/connect_sql.php @@ -16,7 +16,7 @@ * @package SPIP\Core\SQL **/ if (!defined('_ECRIRE_INC_VERSION')) return; -include_spip('base/objets'); +require_once _ROOT_RESTREINT . 'base/objets.php'; diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index f36a2fd615..d8f342b8fe 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -1255,8 +1255,11 @@ function find_in_path ($file, $dirname='', $include=false) { include_once _ROOT_CWD . $a; $inc[$dirname][$file] = $inc[''][$dirname . $file] = true; } - if (!defined('_SAUVER_CHEMIN')) - define('_SAUVER_CHEMIN',true); + if (!defined('_SAUVER_CHEMIN')){ + // si le chemin n'a pas encore ete charge, ne pas lever le flag, ne pas cacher + if (is_null($GLOBALS['path_files'])) return $a; + define('_SAUVER_CHEMIN', true); + } return $GLOBALS['path_files'][$GLOBALS['path_sig']][$dirname][$file] = $GLOBALS['path_files'][$GLOBALS['path_sig']][''][$dirname . $file] = $a; } } -- GitLab