Wp-rocket: Pemberitahuan PHP saat memperbarui

Dibuat pada 17 Mar 2020  ·  5Komentar  ·  Sumber: wp-media/wp-rocket

Jelaskan bugnya
Selama proses pembaruan, 2 pemberitahuan PHP muncul di log:

[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

Untuk Mereproduksi

  1. Instal WP Rocket versi lama
  2. Hapus file log
  3. Perbarui plugin

Perilaku yang diharapkan
Tidak ada baris baru di file log.

Konteks tambahan

  • Saya memperbarui WPR dari 3.4.4 menjadi 3.5.0.3
  • WordPress 5.3.2

Perawatan Backlog

  • [x] Reproduksi masalah
  • [x] Identifikasi akar penyebabnya
  • [x] Lingkup solusi
  • [x] Perkirakan usaha
[S] low bug

Semua 5 komentar

Identifikasi akar penyebabnya
inc/functions/options.php - get_rocket_cache_reject_uri() fungsi
Akar penyebabnya adalah pernyataan

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

yang dilakukan dalam kondisi if:
if ( '' !== $home_root && $uris ) {
Vars ini digunakan di bawah ini dan tampaknya tidak didefinisikan:
https://github.com/wp-media/wp-rocket/blob/8b2a567efcab3925dba6fff72c5a622ec2d16386/inc/functions/options.php#L198 -L199

Lingkup solusi
Solusinya adalah memindahkan deklarasi 2 vars ini menjadi global dalam fungsi ini.

Perkirakan usaha
Upaya]
Upaya tersebut akan dilakukan dalam tes Unit & Integrasi.

Saya baru saja melihat masalah pada mega/Divi dan saya dapat mereplikasinya dengan mengaktifkan pramuat.

@GeekPress @hellofromtonya Haruskah kita meningkatkan prioritas masalah ini? Ini sepele, tetapi karena kita mengetahuinya dan karena mudah diperbaiki, saya merasa kita tidak boleh membiarkan ini berada dalam kode kita.

@arunbasillal Prioritas ditetapkan tergantung pada kekritisan masalah. Yang ini tidak kritis dan akan "rendah" karena:

  • kesalahan hanya ditampilkan ke dalam log
  • itu tidak merusak salah satu fitur kami
  • jumlah tiket tentang masalah ini sangat rendah

Tiket terkait:
https://secure.helpscout.net/conversation/1238067915/183094/

Kesalahan ini dicatat saat mengaktifkan plugin kami:
[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

Apakah halaman ini membantu?
0 / 5 - 0 peringkat