| Bug #118843 | Buffer full handling in rececive thread | ||
|---|---|---|---|
| Submitted: | 14 Aug 2025 15:25 | Modified: | 16 Aug 2025 5:40 |
| Reporter: | Mikael Ronström | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S3 (Non-critical) |
| Version: | 8.4.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[16 Aug 2025 5:40]
MySQL Verification Team
Hello Mikael, Thank you for the report and feedback. Sincerely, Umesh

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