[MySQL Bug]Bug#13986705 CRASH IN GET_INTERVAL_VALUE() WITH DATE CALCULATION WITH UTF32 INTERVALS

本文涉及的产品
RDS AI 助手,专业版
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
简介:
upstream link:
test case:
select space(date_add(101, INTERVAL (CAST(CHAR(‘1′ USING utf16) AS CHAR(1)))hour_second))
只影响5.5

根据crash的backtrace
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ffff4643700 (LWP 5874)]
0x0000000000706602 in get_interval_value (args=0x7fff84004e98, int_type=INTERVAL_HOUR_SECOND, str_value=<value optimized out>, interval=0x7ffff4640c40)
    at /u01/project/PS5518/trunk/Percona-Server-5.5.18/sql/item_timefunc.cc:1460
1460        while (str != end && my_isspace(cs,*str))

在my_isspace(cs,*str)这里crash,my_isspace是一个宏:
#define my_isspace(s, c)  (((s)->ctype+1)[(uchar) (c)] & _MY_SPC)
而对于utf16(my_charset_utf16_general_ci)或者utf32(my_charset_utf32_general_ci)类型的字符集,ctype为NULL(ctype-ucs2.c)
因此这里直接导致段错误。


Solution: convert input to ASCII before parsing,
and use the character set of the returned ASCII string. 
.

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
关系型数据库 MySQL
926.【mysql】 date 函数
926.【mysql】 date 函数
367 3
|
SQL 关系型数据库 MySQL
(十八)MySQL排查篇:该如何定位并解决线上突发的Bug与疑难杂症?
前面《MySQL优化篇》、《SQL优化篇》两章中,聊到了关于数据库性能优化的话题,而本文则再来聊一聊关于MySQL线上排查方面的话题。线上排查、性能优化等内容是面试过程中的“常客”,而对于线上遇到的“疑难杂症”,需要通过理性的思维去分析问题、排查问题、定位问题,最后再着手解决问题,同时,如果解决掉所遇到的问题或瓶颈后,也可以在能力范围之内尝试最优解以及适当考虑拓展性。
1685 3
|
关系型数据库 MySQL
mysql查询结果时间戳转成日期格式——date、DATE_FORMAT和FROM_UNIXTIME的使用
mysql查询结果时间戳转成日期格式——date、DATE_FORMAT和FROM_UNIXTIME的使用
496 0
|
存储 关系型数据库 MySQL
【Mysql】The DATE, DATETIME, and TIMESTAMP Types(二)
【Mysql】The DATE, DATETIME, and TIMESTAMP Types
473 0
【Mysql】The DATE, DATETIME, and TIMESTAMP Types(二)
|
SQL 存储 关系型数据库
【Mysql】The DATE, DATETIME, and TIMESTAMP Types(一)
【Mysql】The DATE, DATETIME, and TIMESTAMP Types
258 0
【Mysql】The DATE, DATETIME, and TIMESTAMP Types(一)
|
关系型数据库 MySQL
mysql bigint与date时间转换
mysql bigint与date时间转换
527 1
|
SQL 存储 关系型数据库
【Mysql】The DATE, DATETIME, and TIMESTAMP Types
【Mysql】The DATE, DATETIME, and TIMESTAMP Types
339 0
|
存储 关系型数据库 MySQL
MySQL中的date、datetime、timestamp有什么区别?
MySQL中的date、datetime、timestamp有什么区别?
601 0
|
关系型数据库 MySQL PHP
【Bug解决】Thinkphp5 PDO::__construct(): MySQL server has gone away解决办法
【Bug解决】Thinkphp5 PDO::__construct(): MySQL server has gone away解决办法
388 0
|
关系型数据库 MySQL 数据库
提取日期信息:解析MySQL中的DATE()函数
在数据库管理中,从日期时间值中提取日期部分是非常常见的操作,而DATE()函数正是用于帮助我们实现这一目标的工具。
842 0

推荐镜像

更多