Bug #94441 empty ibuf aio reads in innodb status
Submitted: 22 Feb 2019 9:42 Modified: 22 Feb 2019 11:23
Reporter: Nikolai Ikhalainen Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:5.7.25, 8.0.15 OS:Any
Assigned to: CPU Architecture:Any

[22 Feb 2019 9:42] Nikolai Ikhalainen
Description:
Single-segment items producing empty statistics in InnoDB Status.

5.6.43:
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
 ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0

8.0.15 and 5.7.25:
Pending normal aio reads: [0, 0, 0, 0] , aio writes: [0, 0, 0, 0] ,
 ibuf aio reads:, log i/o's:, sync i/o's:

All 3 items using just a single segment:
        static AIO* create(
                latch_id_t      id,
                ulint           n_slots,
                ulint           segments)

s_ibuf = create(LATCH_ID_OS_AIO_IBUF_MUTEX, n_per_seg, 1);

Print happening from the code:
        if (s_ibuf != NULL) {
                fputs(",\n ibuf aio reads:", file);
                s_ibuf->print(file);
        }
Print function calls:
        print_segment_info(file, n_res_seg);
print_segment_info prints only if m_n_segments > 1

https://github.com/mysql/mysql-server/blob/ca94b993454c86be248fbe180db94647488114e9/storag...

5.6 prints a total number before printing per-segment statistics thus it has a value for single-segment items.

How to repeat:
docker run -it --name p57 -e MYSQL_ROOT_PASSWORD=secret -p 3306:3306 mysql:5.7
docker run -it --name p80 -e MYSQL_ROOT_PASSWORD=secret -p 3306:3306 mysql:8.0

execute SHOW ENGINE INNODB STATUS\G
[22 Feb 2019 11:23] MySQL Verification Team
Hello Nikolai,

Thank you for the report and feedback.

regards,
Umesh