Wp-rocket: Avis PHP lors de la mise à jour

Créé le 17 mars 2020  ·  5Commentaires  ·  Source: wp-media/wp-rocket

Décrivez le bogue
Au cours du processus de mise à jour, 2 notifications PHP sont apparues dans les journaux :

[17-Mar-2020 13:37:45 UTC] PHP Notice:  Undefined variable: home_root_escaped in /****/wp-content/plugins/wp-rocket/inc/functions/options.php on line 252
[17-Mar-2020 13:37:45 UTC] PHP Stack trace:
[17-Mar-2020 13:37:45 UTC] PHP   1. {main}() /****/wp-admin/admin-ajax.php:0
[17-Mar-2020 13:37:45 UTC] PHP   2. do_action() /****/wp-admin/admin-ajax.php:45
[17-Mar-2020 13:37:45 UTC] PHP   3. WP_Hook->do_action() /****/wp-includes/plugin.php:478
[17-Mar-2020 13:37:45 UTC] PHP   4. WP_Hook->apply_filters() /****/wp-includes/class-wp-hook.php:312
[17-Mar-2020 13:37:45 UTC] PHP   5. rocket_upgrader() /****/wp-includes/class-wp-hook.php:288
[17-Mar-2020 13:37:45 UTC] PHP   6. flush_rocket_htaccess() /****/wp-content/plugins/wp-rocket/inc/admin/upgrader.php:27
[17-Mar-2020 13:37:45 UTC] PHP   7. get_rocket_htaccess_marker() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:56
[17-Mar-2020 13:37:45 UTC] PHP   8. get_rocket_htaccess_mod_rewrite() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:148
[17-Mar-2020 13:37:45 UTC] PHP   9. get_rocket_cache_reject_uri() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:271
[17-Mar-2020 13:37:45 UTC] PHP Notice:  Undefined variable: home_root_len in /****/wp-content/plugins/wp-rocket/inc/functions/options.php on line 254
[17-Mar-2020 13:37:45 UTC] PHP Stack trace:
[17-Mar-2020 13:37:45 UTC] PHP   1. {main}() /****/wp-admin/admin-ajax.php:0
[17-Mar-2020 13:37:45 UTC] PHP   2. do_action() /****/wp-admin/admin-ajax.php:45
[17-Mar-2020 13:37:45 UTC] PHP   3. WP_Hook->do_action() /****/wp-includes/plugin.php:478
[17-Mar-2020 13:37:45 UTC] PHP   4. WP_Hook->apply_filters() /****/wp-includes/class-wp-hook.php:312
[17-Mar-2020 13:37:45 UTC] PHP   5. rocket_upgrader() /****/wp-includes/class-wp-hook.php:288
[17-Mar-2020 13:37:45 UTC] PHP   6. flush_rocket_htaccess() /****/wp-content/plugins/wp-rocket/inc/admin/upgrader.php:27
[17-Mar-2020 13:37:45 UTC] PHP   7. get_rocket_htaccess_marker() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:56
[17-Mar-2020 13:37:45 UTC] PHP   8. get_rocket_htaccess_mod_rewrite() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:148
[17-Mar-2020 13:37:45 UTC] PHP   9. get_rocket_cache_reject_uri() /****/wp-content/plugins/wp-rocket/inc/functions/htaccess.php:271

Reproduire

  1. Installer une ancienne version de WP Rocket
  2. Effacer le fichier journal
  3. Mettre à jour le plugin

Comportement prévisible
Aucune nouvelle ligne dans le fichier journal.

Contexte supplémentaire

  • J'étais en train de mettre à jour WPR de 3.4.4 à 3.5.0.3
  • WordPress 5.3.2

Nettoyage de l'arriéré

  • [x] Reproduire le problème
  • [x] Identifier la cause première
  • [x] Portée d'une solution
  • [x] Estimer l'effort
[S] low bug

Tous les 5 commentaires

Identifiez la cause première ✅
inc/functions/options.php - fonction get_rocket_cache_reject_uri()
La cause première est la déclaration de

        $home_root_escaped = preg_quote( $home_root, '/' );
        $home_root_len     = strlen( $home_root );

qui est fait dans une condition if :
if ( '' !== $home_root && $uris ) {
Ces vars sont utilisées ci-dessous et il semble qu'elles ne soient pas définies :
https://github.com/wp-media/wp-rocket/blob/8b2a567efcab3925dba6fff72c5a622ec2d16386/inc/functions/options.php#L198 -L199

Porter une solution ✅
La solution sera de déplacer la déclaration de ces 2 vars pour être globalement dans cette fonction.

Estimer l'effort ✅
Effort : [S]
L'effort ira dans les tests unitaires et d'intégration.

Je viens de remarquer le problème sur mega/Divi et je peux le reproduire en activant le préchargement.

@GeekPress @hellofromtonya Allons -nous augmenter la priorité de ce problème ? C'est trivial, mais puisque nous le savons et que c'est facile à corriger, je pense que nous ne devrions pas laisser cela résider dans notre code.

@arunbasillal La priorité est définie en fonction de la criticité du problème. Celui-ci n'est pas critique et sera « bas » car :

  • l'erreur n'est affichée que dans les journaux
  • cela ne casse pas l'une de nos fonctionnalités
  • le nombre de ticket sur ce problème est très faible

Billet associé :
https://secure.helpscout.net/conversation/1238067915/183094/

Cette erreur est enregistrée lors de l'activation de notre plugin :
[01-Aug-2020 11:54:49 UTC] PHP Notice Undefined variable: home_root_len in /var/www/vhosts/managed.hosting.com/managed.hosting.com/site/wp-content/plugins/wp-rocket/inc/functions/options.php on line 261

Cette page vous a été utile?
0 / 5 - 0 notes