Bug #118843 Buffer full handling in rececive thread
Submitted: 14 Aug 15:25 Modified: 16 Aug 5:40
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.4.3 OS:Any
Assigned to: CPU Architecture:Any

[14 Aug 15:25] Mikael Ronström
Description:
mt_receiver_thread_main should not continue calling pollReceive and performReceive
               when buffersFull concluded. It should also not go to sleep if it performs work
               related to TC, LDM, Main or Rep thread blocks. This is actually always the case
               nowadays. So in buffersFull situation the receive thread will not sleep until the
               buffersFull situation has been remedied.
               The thr_job_queue::RESERVED and thr_job_queue::CONGESTED were not sufficiently
               large, one receive could potentially fill 7 or even 8 pages at least. Thus
               RESERVED was increased from 4 to 10 and CONGESTED from 8 to 14.

How to repeat:
Load dump with a set of 1 MB INSERT statements using a single thread in ndbmtd. 

Suggested fix:
See description
[16 Aug 5:40] MySQL Verification Team
Hello Mikael,

Thank you for the report and feedback.

Sincerely,
Umesh