Wp-rocket: PHP advierte al actualizar

Creado en 17 mar. 2020  ·  5Comentarios  ·  Fuente: wp-media/wp-rocket

Describe el error
Durante el proceso de actualización, aparecieron 2 avisos de PHP en los registros:

[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

Reproducir

  1. Instale una versión antigua de WP Rocket
  2. Borrar el archivo de registro
  3. Actualiza el complemento

Comportamiento esperado
No hay nuevas líneas en el archivo de registro.

Contexto adicional

  • Estaba actualizando WPR de 3.4.4 a 3.5.0.3
  • WordPress 5.3.2

Aseo de la cartera de pedidos

  • [x] Reproduce el problema
  • [x] Identifica la causa raíz
  • [x] Alcance una solución
  • [x] Estima el esfuerzo
[S] low bug

Todos 5 comentarios

Identifica la causa raíz ✅
inc/functions/options.php - get_rocket_cache_reject_uri() función
La causa raíz es la declaración de

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

que se hace en una condición if:
if ( '' !== $home_root && $uris ) {
Estas vars se usan a continuación y parece que no están definidas:
https://github.com/wp-media/wp-rocket/blob/8b2a567efcab3925dba6fff72c5a622ec2d16386/inc/functions/options.php#L198 -L199

Alcance una solución ✅
La solución será mover la declaración de estas 2 vars para que esté globalmente en esta función.

Estima el esfuerzo ✅
Esfuerzo: [S]
El esfuerzo irá en las pruebas de Unidad e Integración.

Acabo de notar el problema en mega/Divi y puedo replicarlo habilitando la precarga.

@GeekPress @hellofromtonya ¿Incrementaremos la prioridad de este tema? Es trivial, pero como lo sabemos y es fácil de arreglar, creo que no deberíamos dejar que esto resida en nuestro código.

@arunbasillal La prioridad se establece en función de la gravedad del problema. Este no es crítico y será "bajo" porque:

  • el error se muestra solo en los registros
  • no rompe una de nuestras funciones
  • el número de tickets sobre este tema es muy bajo

Boleto relacionado:
https://secure.helpscout.net/conversation/1238067915/183094/

Este error se registra al habilitar nuestro complemento:
[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

¿Fue útil esta página
0 / 5 - 0 calificaciones