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