Bug #116153 Performance_schema.processlist’s INFO column of execute command is NULL
Submitted: 19 Sep 1:40 Modified: 23 Sep 12:51
Reporter: QIFAN WU Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Performance Schema Severity:S3 (Non-critical)
Version:8.0.24 OS:Any
Assigned to: CPU Architecture:Any
Tags: execute, performance_schema, prepare

[19 Sep 1:40] QIFAN WU
Description:
When I run sysbench to test, I found that the INFO column in performance_schema.processlist was always NULL. After analyzing the code, I learned that in the dispatch_command function, the thread will copy the SQL statement from thd to the local variable of pfs, but this process is only Occurs when the command type is COM_QUERY. Other types such as COM_STMT_EXECUTE do not record sql.

How to repeat:
run sysbench and select * from performance_schema.processlist
Execute through the client cannot be reproduced because the command type of execute is also set to COM_QUERY in the client.
[19 Sep 1:43] QIFAN WU
My sysbench version is 1.0.17
[19 Sep 9:18] MySQL Verification Team
Hi Mr. WU,

Thank you for your bug report.

However, your 8.0 release is too old for testing.

Please, try to perform the same test with 8.0.39.

Also, we can not reproduce your test case.

Sysbench has many tests and you did not specify which ones.

Unsupported.
[23 Sep 3:54] QIFAN WU
my sysbench command:
sysbench /usr/share/sysbench/oltp_read_write.lua --mysql-host=127.0.0.1 --mysql-port=4040 --mysql-user=user --mysql-password=password --mysql-db=sbtest1 --table-size=4000000 --tables=1 --threads=1 --time=6000 --report-interval=1 run

actually, we copy sql info from thd to performance thread local info in mysql_parse, but not in mysqld_stmt_execute
thd->set_query_for_display(thd->query().str, thd->query().length)
[23 Sep 12:51] MySQL Verification Team
Hi Mr. WU,

We ran all your commands and  we could not repeat your problem with our latest official 8.0.39 binary:

+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| ID | USER            | HOST      | DB      | COMMAND | TIME | STATE                  | INFO                                                                | EXECUTION_ENGINE |
+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| 13 | sinisa          | localhost | sbtest1 | Execute |    0 | executing              | SELECT c FROM sbtest1 WHERE id BETWEEN 199938 AND 200037 ORDER BY c | PRIMARY          |
| 15 | sinisa          | localhost | NULL    | Query   |    0 | executing              | select * from performance_schema.processlist                        | PRIMARY          |
+----+-----------------+-----------+---------+---------+------+--------------------\

The same result we get when it is not "Execute" bug "Closed".

Can't repeat.
[23 Sep 12:51] MySQL Verification Team
Hi Mr. WU,

We ran all your commands and  we could not repeat your problem with our latest official 8.0.39 binary:

+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| ID | USER            | HOST      | DB      | COMMAND | TIME | STATE                  | INFO                                                                | EXECUTION_ENGINE |
+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| 13 | sinisa          | localhost | sbtest1 | Execute |    0 | executing              | SELECT c FROM sbtest1 WHERE id BETWEEN 199938 AND 200037 ORDER BY c | PRIMARY          |
| 15 | sinisa          | localhost | NULL    | Query   |    0 | executing              | select * from performance_schema.processlist                        | PRIMARY          |
+----+-----------------+-----------+---------+---------+------+--------------------\

The same result we get when it is not "Execute" bug "Closed".

Can't repeat.
[23 Sep 12:51] MySQL Verification Team
Hi Mr. WU,

We ran all your commands and  we could not repeat your problem with our latest official 8.0.39 binary:

+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| ID | USER            | HOST      | DB      | COMMAND | TIME | STATE                  | INFO                                                                | EXECUTION_ENGINE |
+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| 13 | sinisa          | localhost | sbtest1 | Execute |    0 | executing              | SELECT c FROM sbtest1 WHERE id BETWEEN 199938 AND 200037 ORDER BY c | PRIMARY          |
| 15 | sinisa          | localhost | NULL    | Query   |    0 | executing              | select * from performance_schema.processlist                        | PRIMARY          |
+----+-----------------+-----------+---------+---------+------+--------------------\

The same result we get when it is not "Execute" bug "Closed".

Can't repeat.
[23 Sep 12:51] MySQL Verification Team
Hi Mr. WU,

We ran all your commands and  we could not repeat your problem with our latest official 8.0.39 binary:

+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| ID | USER            | HOST      | DB      | COMMAND | TIME | STATE                  | INFO                                                                | EXECUTION_ENGINE |
+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| 13 | sinisa          | localhost | sbtest1 | Execute |    0 | executing              | SELECT c FROM sbtest1 WHERE id BETWEEN 199938 AND 200037 ORDER BY c | PRIMARY          |
| 15 | sinisa          | localhost | NULL    | Query   |    0 | executing              | select * from performance_schema.processlist                        | PRIMARY          |
+----+-----------------+-----------+---------+---------+------+--------------------\

The same result we get when it is not "Execute" bug "Closed".

Can't repeat.
[23 Sep 12:51] MySQL Verification Team
Hi Mr. WU,

We ran all your commands and  we could not repeat your problem with our latest official 8.0.39 binary:

+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| ID | USER            | HOST      | DB      | COMMAND | TIME | STATE                  | INFO                                                                | EXECUTION_ENGINE |
+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| 13 | sinisa          | localhost | sbtest1 | Execute |    0 | executing              | SELECT c FROM sbtest1 WHERE id BETWEEN 199938 AND 200037 ORDER BY c | PRIMARY          |
| 15 | sinisa          | localhost | NULL    | Query   |    0 | executing              | select * from performance_schema.processlist                        | PRIMARY          |
+----+-----------------+-----------+---------+---------+------+--------------------\

The same result we get when it is not "Execute" bug "Closed".

Can't repeat.
[23 Sep 12:51] MySQL Verification Team
Hi Mr. WU,

We ran all your commands and  we could not repeat your problem with our latest official 8.0.39 binary:

+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| ID | USER            | HOST      | DB      | COMMAND | TIME | STATE                  | INFO                                                                | EXECUTION_ENGINE |
+----+-----------------+-----------+---------+---------+------+------------------------+---------------------------------------------------------------------+------------------+
| 13 | sinisa          | localhost | sbtest1 | Execute |    0 | executing              | SELECT c FROM sbtest1 WHERE id BETWEEN 199938 AND 200037 ORDER BY c | PRIMARY          |
| 15 | sinisa          | localhost | NULL    | Query   |    0 | executing              | select * from performance_schema.processlist                        | PRIMARY          |
+----+-----------------+-----------+---------+---------+------+--------------------\

The same result we get when it is not "Execute" bug "Closed".

Can't repeat.