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:
None 
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 4:44] George Ma
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
[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 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 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 .......