-
NDB Cluster APIs: 之前修复的一个问题,在部分重启期间多个数据节点的故障可能导致 API 节点失败,在继续之前没有正确检查关联
NdbReceiver
对象的有效性。现在在这种情况下,无效对象会触发对无效信号的处理,而不是节点故障。(漏洞 #25902137)参考资料:此问题是 Bug #25092498 的回归。
NDB Cluster API:
setBound()
在用于指定NULL
边界 时返回不正确的结果,通常是空结果集 这个问题似乎是由 gcc 中的问题引起的,仅限于使用此方法的旧版本(不使用NdbRecord
)的情况,并且通过在旧实现中重写有问题的内部逻辑来解决。(漏洞 #89468,漏洞 #27461752)在某些情况下,当
DBTC
块中的事务中止时,仍然存在指向尚未引用计数的操作记录的触发记录的链接,但是当这样的操作记录被释放时,触发引用计数仍然递减。(缺陷号 27629680)ANALYZE TABLE
在大型低基数表上使用过多的 CPU。(漏洞#27438963)-
使用非常大的列表的查询
IN
没有得到正确处理,这可能导致数据节点故障。(缺陷号 27397802)参考资料:另请参阅:Bug #28728603。
-
数据节点过载在某些情况下可能会导致数据节点意外关闭,从而导致所有数据节点与管理和节点断开连接。
这是由于
API_FAILREQ
在节点故障之前不是最后接收到的信号的情况。作为此修复的一部分,事务协调
SCAN_TABREQ
器对处于不正确状态的信号 的处理ApiConnectRecord
也得到了改进。(漏洞 #27381901)参考资料:另请参阅:Bug #47039、Bug #11755287。
在双节点集群中,当 ID 最低的节点开始使用
--nostart
时,API 客户端无法连接,失败并显示Could not alloc node id at HOST port PORT_NO: No free node id found for mysqld(API)。(漏洞 #27225212)-
在某些情况下,数据节点在执行期间不必要地重新启动
ALTER TABLE... REORGANIZE PARTITION
。(漏洞#25675481)参考资料:另请参阅:Bug #26735618、Bug #27191468。
-
竞争条件有时会在传输器异步断开连接和重新连接期间发生,而其他线程同时将信号数据插入发送缓冲区,导致集群意外关闭。
作为解决此问题的工作的一部分,Transporter Registry 在准备发送时使用的内部模板函数被重构为使用可能或不太可能的逻辑来加快执行速度,并删除了一些对 NULL 的重复检查。(错误#24444908,错误#25128512)
参考资料:另请参阅:Bug #20112700。
ndb_restore有时记录的数据文件和日志文件进度值远大于 100%。(缺陷号 20989106)
由于在执行辅助发送时重用了用于发送线程的代码,所有本地释放发送缓冲区都被释放到全局池中,这导致本地发送缓冲池的预期级别被忽略。现在发送线程和辅助工作线程遵循它们自己的策略来维护它们的本地缓冲池。(错误#89119,错误#27349118)
当发送优先级 A 信号时,我们现在确保显式初始化未决信号的数量。(错误#88986,错误#27294856)
ndb_restore 没有打印 值的尾随 0。(漏洞 #65560,漏洞 #14198580)
--print-data
--hex
LONGVARBINARY