Bug #109452 Misleading error message on storage engine failing to collect its log info
Submitted: 21 Dec 2022 10:22 Modified: 21 Dec 2022 12:11
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S3 (Non-critical)
Version:8.0.31 OS:Any
Assigned to: CPU Architecture:Any

[21 Dec 2022 10:22] Laurynas Biveinis
Description:
performance_schema.LOG_STATUS implementation has this bit in table_log_status::make_row:

    if ((error = DBUG_EVALUATE_IF("log_status_oom_collecting", 1,
                                  (*it)->collect_info()))) {
      my_error(ER_UNABLE_TO_COLLECT_LOG_STATUS, MYF(0),
               (*it)->get_json() == &json_storage_engines
                   ? "STORAGE_ENGINES"
                   : (*it)->get_json() == &json_local ? "LOCAL" : "REPLICATION",
               "failed to allocate memory to collect information");
      goto err_unlock;
    }

That "failed to allocate memory ... " message is misleadingly too-specific. It is reported for handlerton collect_hton_log_info failures, but these are not limited to OOMs.

(also, the OOM injection code makes this code hard to read)

How to repeat:
Read source code

Suggested fix:
Replace the error message with something more generic
[21 Dec 2022 12:11] MySQL Verification Team
Hello Laurynas,

Thank you for the report and feedback!

regards,
Umesh