wp-cli / wp-cli/doctor-command

`autoload-options-size` check should include autoloaded transients

Open
#150 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

command:doctor-check
Dominant language
Gherkin
Stars
169
Forks
25
PR merge metrics
No merged PRs in 30d

Description

Bug Report

Describe the current, buggy behavior

wp doctor check autoload-options-size - 650 kB

SELECT 'Autoload kiB' as name, ROUND(SUM(LENGTH(option_value)) / 1024) as value FROM wp_options WHERE autoload='yes' - 2.4 MB

Difference is in counting _transient_* options.

https://codex.wordpress.org/Function_Reference/set_transient#Notes points out "NB: transients that never expire are autoloaded, whereas transients with an expiration time are not autoloaded. Consider this when adding transients that may not be needed on every page, and thus do not need to be autoloaded, impacting page performance."

Describe what you would expect as the correct outcome

wp doctor check autoload-options-size should count unexpirable transients.

Let us know what environment you are running this on

convers@pill2 ~/www/institute]# wp cli info
OS:     Linux 2.6.32-754.17.1.el6.x86_64 #1 SMP Tue Jul 2 12:42:48 UTC 2019 x86_64
Shell:  /bin/bash
PHP binary:     /opt/cpanel/ea-php73/root/usr/bin/php
PHP version:    7.3.15
php.ini used:   /opt/cpanel/ea-php73/root/etc/php.ini
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       /home/convers/public_html/institute
WP-CLI packages dir:    /home/convers/.wp-cli/packages/
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.4.0

Reading https://github.com/wp-cli/doctor-command/pull/15/files by @danielbachhuber I'm now thinking this may be an issue for wp option command instead. Your thoughts?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the implementation of the autoload-options-size check and compare its behavior with the SQL query in the report and the referenced doctor-command PR #15. Confirm how unexpirable _transient_* options are handled, then update the check so its reported size includes them and verify the resulting total.

Written by the indexing model from the issue text.

Assessment

Tech stack
php, sql
Domain
cli, database
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.