Bug #90264 Some file operations in mf_iocache2.c are not instrumented
| Submitted: | 30 Mar 2018 15:54 | Modified: | 3 Sep 2018 22:09 |
|---|---|---|---|
| Reporter: | Yura Sorokin (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Performance Schema | Severity: | S3 (Non-critical) |
| Version: | 5.5.59, 5.6.39, 5.7.21 | OS: | Any |
| Assigned to: | Marc ALFF | CPU Architecture: | Any |
| Tags: | Contribution | ||
[30 Mar 2018 17:20]
Yura Sorokin
Patch for 5.5 (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: bug90264-5_5.diff (application/octet-stream, text), 5.04 KiB.
[30 Mar 2018 17:20]
Yura Sorokin
Patch for 5.6 (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: bug90264-5_6.diff (application/octet-stream, text), 5.22 KiB.
[30 Mar 2018 17:21]
Yura Sorokin
Patch for 5.7 (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: bug90264-5_7.diff (application/octet-stream, text), 7.42 KiB.
[31 Mar 2018 4:58]
MySQL Verification Team
Hello Yura Sorokin, Thank you for the report and contribution. Thanks, Umesh
[20 Aug 2018 14:07]
Marc ALFF
Hi Yura Sorokin, Thanks for : - the bug report, - the contribution with the fix. Regards, -- Marc Alff
[3 Sep 2018 22:09]
Paul DuBois
Posted by developer: Fixed in 5.5.62, 5.6.42, 5.7.24, 8.0.13. Previously, file I/O performed in the I/O cache in the mysys library was not instrumented, affecting in particular file I/O statistics reported by the Performance Schema about the binary log index file. Now, this I/O is instrumented and Performance Schema statistics are accurate. Thanks to Yura Sorokin for the contribution.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.054 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: my_b_append_tell(), my_b_fill() and my_b_filelength() functions from 'mf_iocache2.c' use non-instrumented file tell/seek/read functions (my_tell(), my_seek() and my_read()) instead of their instrumented version (mysql_file_tell(), mysql_file_seek() and mysql_file_read()). This causes inaccurate statistics in PERFORMANCE_SCHEMA. How to repeat: Run ./mysql-test/mtr --debug-server perfschema.relaylog "============ Performance schema on master ============" select substring(file_name, locate("master-", file_name)) as FILE_NAME, EVENT_NAME, if (count_read > 0, "MANY", "NONE") as COUNT_READ, if (count_write > 0,"MANY", "NONE") as COUNT_WRITE, if (sum_number_of_bytes_read > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_READ, if (sum_number_of_bytes_write > 0, "MANY", "NONE") as SUM_NUMBER_OF_BYTES_WRITE from performance_schema.file_summary_by_instance where file_name like "%master-%" order by file_name; This query (and similar) should return 'MANY' for 'COUNT_READ' and 'SUM_NUMBER_OF_BYTES_READ' instead of 'NONE' Suggested fix: Change my_tell() / my_seek() / my_read() to mysql_file_tell() / mysql_file_seek() / mysql_file_read() in 'mf_iocache2.c'. See the attached patches.