| Bug #100326 | Parallel read can not kill | ||
|---|---|---|---|
| Submitted: | 27 Jul 2020 4:44 | Modified: | 27 Jul 2020 12:59 |
| Reporter: | George Ma | Email Updates: | |
| Status: | Duplicate | Impact on me: | |
| Category: | MySQL Server: InnoDB Plugin storage engine | Severity: | S3 (Non-critical) |
| Version: | 8.0.18 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[27 Jul 2020 12:59]
MySQL Verification Team
Hi Mr. Ma, Thank you for your bug report. This bug is a duplicate of an internal bug, which is filed in our internal bug database, more then one month ago. We truly are not aware of any scheduling regarding that bug. Duplicate.
[17 Oct 2022 7:44]
ggwdwsbs W
Have this bug been fixed on newest release?
[17 Oct 2022 12:38]
MySQL Verification Team
Hi Mr. W, We have reviewed release notes on dev.mysql.com and we have not found any evidence that this bug was already fixed.
[22 Jan 2025 3:49]
George Ma
Maybe after this patch, such error not happened any more. Bug#31429385 PARALLEL READER READ AHEAD CODE NEEDS TO BE REMOVED 1fa27dcf Issue ===== The physical read ahead in parallel reader code is no longer used as it introduces performance regression in some cases and hence needs to be removed as logical read ahead will be added in the future.
[22 Jan 2025 10:57]
MySQL Verification Team
Hi Mr. Ma, This bug report is already 5 (five) years old. We have , indeed, found this entry for 8.0.22: Unused physical read ahead code was removed from the parallel read interface. (Bug #31429385) Hence, this fix is already 4 (four) years old .......

Description: Execute select count(*) on a big table, and then kill the session, but the session state is always killed and can not exit. The sql threads cpu usage are 100% and the stack is : #0 submit_read_ahead at /storage/innobase/include/row0pread.h:524 #1 Parallel_reader::Ctx::traverse at /storage/innobase/row/row0pread.cc:501 #2 Parallel_reader::worker at /storage/innobase/row/row0pread.cc:616 I have searched the source code(8.0.18) and find that: void submit_read_ahead(page_no_t page_no) { ut_ad(page_no != FIL_NULL); ut_ad(m_config.m_read_ahead); Read_ahead_request read_ahead_request(this, page_no); while (!m_reader->m_read_aheadq.enqueue(read_ahead_request)) { UT_RELAX_CPU(); } m_reader->m_submitted.fetch_add(1, std::memory_order_relaxed); } The loop can not exit. How to repeat: None