Bug #103821 An assertion failure in resource_group_mgr
Submitted: 27 May 2021 1:30 Modified: 13 Apr 2022 8:01
Reporter: xiaoyu wang (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Options Severity:S6 (Debug Builds)
Version:MySQL Server 8.0.25 Community OS:Any
Assigned to: CPU Architecture:Any
Tags: Contribution, resource_group_mgr

[27 May 2021 1:30] xiaoyu wang
Description:
// sql/resourcegroups/resource_group_mgr.h
void set_res_grp_in_pfs(const char *name, int length, ulonglong thread_id) {
  assert(m_resource_group_support); // L233. Assertion failure.
  m_resource_group_svc->set_thread_resource_group_by_id(
      nullptr, thread_id, name, length, nullptr);
}

The assertion failure is caused by a thread concurrency problem as illustrated in https://bugs.mysql.com/bug.php?id=99609.

Please check https://bugs.mysql.com/file.php?id=29576&bug_id=99609 for the 'thread concurrency problem'.

When it comes to m_resource_group_support. In brief, resource_group_mgr.h:L134 (in main thread) may take place between resource_group_mgr.cc:L74 (in child thread) and resource_group_mgr.h:L233 (in child thread).

How to repeat:
Please check https://bugs.mysql.com/file.php?id=29576&bug_id=99609.

Suggested fix:
I think the assertion can be removed.
[27 May 2021 1:30] xiaoyu wang
fix.patch

(*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

Contribution: fix.patch (application/octet-stream, text), 509 bytes.

[27 May 2021 5:34] MySQL Verification Team
Hello xiaoyu wang,

Thank you for the report and contribution.

regards,
Umesh
[13 Apr 2022 8:01] MySQL Verification Team
--

Fixed in 8.0.22.

mysql-test-run.pl tests under no-threads connection handling failed
with ASAN builds due to improper resource group initialization. This
has been fixed. Thanks to Xiaoyu Wang, Tencent Technology for the
contribution.