Как решить ошибку 500 на панели администратора WordPress из-за тайм-аута в getdirsize


Проблема: Только некоторые блоги не показывали панель мониторинга (но показывали все остальные страницы администратора). Я оставил эту проблему на некоторое время (месяцы), так как поиск в Google не выявил ничего существенного, и я был слишком ленив, чтобы исследовать (и мог обойти ее, войдя в систему, получив ошибку 500, а затем нажмите "Назад" и нажмите "Комментарии"). На мой взгляд, это были изменения.htaccess, плагины, которые отбрасывают плохие rss-каналы и т. Д.... Но... это было ядро.

Итак, сегодня я пошел комментируя все отрывки в dashboard.php и, к сожалению, это был Мерфи, так как проблема была в нижней строке...

add_action( 'activity_box_end', 'wp_dashboard_quota' );

В котором я прокомментировал строку

//$used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
    // returns: 1418.9275159836
$used=0;

После чего моя приборная панель стала такой быстрой, что у меня на глазах выступили слезы.

Я регистрирую это здесь, так как надеюсь, что люди, которые сейчас ищут проблему, сократят время и узнают причину. Особенно с комбинацией: 500 и панелью администратора.

Вопрос: Я предполагаю, что чем больше будет загружаемый файл, тем медленнее будут загружаться dasboards для блогов. Я также предполагаю, что это происходит для каждого блога, так как это строка в ядре.

Я прав и могу ли я зарегистрировать это как проблему или я глуп - упустил что-то важное, что не вызывает проблем для каждого многосайтового блога с большой квотой через некоторое время?

Теперь я подключил 500 и нашел getdirsize http://trac.mu.wordpress.org/ticket/1175 и http://trac.mu.wordpress.org/changeset/2027 ......

Там временная проверка была реализована Джеймсом Коллинзом. Что случилось с временной проверкой? я думаю, это решило бы эту проблему.

Временная проверка, реализованная в билете 2027, все еще действует (см. Ответ Rarst ниже), и полное отключение квоты также приведет к ошибке 500, поскольку именно это проверяется в wp_dashboard_quota.

Итак: если вы не отключите квоту, это означает, что вы в конечном итоге вы получите ошибку 500, если у вас большой лимит квот. ИМХО, что можно было бы улучшить/приобрести билет или нет?

Author: edelwater, 2011-03-07

1 answers

Переходный процесс в порядке, см. get_dir_size() источник.

Обратите внимание, что если у вас достаточно файлов для этого, чтобы вызвать серьезные проблемы с производительностью, вам, вероятно, лучше отключить ограничение загрузки, иначе это может испортить другие связанные функции, такие как загрузка.

 3
Author: Rarst, 2011-03-07 22:29:29