| 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: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S3 (Non-critical) |
| Version: | 8.4.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[16 Aug 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