Bug #81992 DBUTIL requires higher prio than normal user transactions
Submitted: 23 Jun 2016 20:26 Modified: 8 Jul 2016 10:10
Reporter: Mikael Ronström Email Updates:
Status: Closed Impact on me:
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:7.5.3 OS:Any
Assigned to: CPU Architecture:Any

[23 Jun 2016 20:26] Mikael Ronström
When running out of TC connect records we can only handle SCANs for LCP and Backup.
However also operations coming from DBUTIL are important operations to handle.
DBUTIL is e.g. used for ALTER TABLE REORG and some other reorganising meta data
operations. So it is important that those operations are not unnecessarily blocked
out. It is also important to retry if we hit problems with out of TC records.

It is however also vital to not jeopardize LCP and BACKUPs due to DBUTIL operations
although this particular bug came from that DBUTIL executed a TCKEYREQ on behalf
of the BACKUP block to handle a backup.

How to repeat:
Run testBackup -n BackupWhenOutOfLDMRecords T1 in 7.5.3.

Suggested fix:
Introduce a number of operation records that are earmarked for DBUTIL usage
and LCP and Backup usage.
[8 Jul 2016 10:10] Jon Stephens
Documented fix in the NDB 7.5.4 changelog as follows:

    When TC connection records were used up, it was possible to
    handle scans only for local checkpoints and backups, so that
    operations coming from DBUTIL--used for ALTER TABLE
    REORGANIZE and other operations that reorganize
    metadata--were unnecessarily blocked. In addition, such
    operations were not always retried when TC records were
    exhausted. To fix this issue, a number of operation records are
    now earmarked for DBUTIL usage, as well as for LCP and backup
    usage so that these operations are also not negatively impacted by 
    operations coming from DBUTIL.
    For more information, see "The DBUTIL Block" in the NDB Internals