Bug #111434 Runs out of CopyActiveRecord's during Copy Active phase of node restart
Submitted: 15 Jun 2023 9:55 Modified: 23 Jun 2023 13:07
Reporter: Mikael Ronström Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:8.0.23 OS:Any
Assigned to: CPU Architecture:Any

[15 Jun 2023 9:55] Mikael Ronström
Description:
With 1 LDM thread DBDIH can send so many COPY_ACTIVEREQ that the pool of 332 records runs out. The simple solution is to move the pool to TransientPool from ArrayPool and in 22.10 also to make sure that DBDIH doesn’t send an unlimited amount of messages.

How to repeat:
Create a cluster with 1 LDM thread and thousands of tables. Perform a node restart.

Suggested fix:
Move CopyActiveRecord to TransientPool from ArrayPool.
Ensure that DBDIH doesn't send unlimited amount of COPY_ACTIVEREQ signals.
[15 Jun 2023 10:12] Mikael Ronström
Seems like the CopyActiveRecord is never released once allocated as well.
[15 Jun 2023 22:24] Mikael Ronström
Release of CopyFragmentRecord is also missing.
[23 Jun 2023 13:07] MySQL Verification Team
Hi Mikael,
Thanks for the report
All best
Bogdan