Bug svn10000 SPIP 3
Bonjour,
Je suis tombé sur un bug sur le processus de mise-à-jour de la base lors d'une migration vers SPIP3.
En effet lorsque un dossier n'est pas présent (comme dans le cas d'une installation fraiche de SPIP 3.1 à partir du fichier Zip) on obtient des erreurs PHP qui remplissent les logs du serveur Web (dans mon cas Nginx) et saturent le disque.
D'après la doc http://php.net/manual/fr/function.opendir.php, la fonction opendir
renvoie False
en cas de soucis et non une ressource. Il faut soit ignorer ce warning soit contrôler préalablement que le dossier existe :
--- spip-3.1/ecrire/maj/svn10000.php 2016-01-06 17:34:04.000000000 +0100 +++ spip3/ecrire/maj/svn10000.php 2016-02-12 15:44:04.952961945 +0100 `` -674,8 +674,9 `` function ranger_cache_gd2() { spip_log("ranger_cache_gd2"); $base = _DIR_VAR . "cache-gd2/"; - $dir = opendir($base); - while (($f = readdir($dir)) !== false) { + if (is_dir($base)) { + if ($dir = opendir($base)) { + while (($f = readdir($dir)) !== false) { if (!is_dir($base . $f) and strncmp($f, ".", 1) !== 0 and preg_match(",[0-9a-f]{32}\.\w+,", $f) ) { `` -687,6 +688,8 `` if (time() >= _TIME_OUT) { return; } + } + } } }
Cdt,
A+, MiKaël. http://www.klnavarro.fr