8.3.0.x补丁新增功能及解决问题
8.3.0.110
类别 | 功能或问题描述 | 问题原因 | 问题出现版本 | 修复建议 |
|---|---|---|---|---|
新增功能 | 新安装集群默认打开全局死锁检测功能,之前版本默认没有打开。 | - | - | - |
解决问题 | 当一个常用表达式(Common Table Expressions,简称CTE)仅被另一个CTE引用多次时可能触发空指针访问导致故障。 | 当一个CTE仅被另一个CTE引用多次时,计划递归遍历逻辑错误导致访问空指针,产生集群故障。 | 8.3.0.101 | 升级到8.3.0.110及以上版本 |
列存表查询语句中出现多结果集函数时,执行该语句会报错Set-returning function is not supported in vector engine。 | 非表的scan算子上的向量化执行引擎不支持多结果集函数。 | 8.3.0.101 | ||
集群低版本升级到8.3.0版本时,线程池功能失效。 | 集群低版本升级到8.3.0时,需要根据当前硬件配置设置max_stream_pool,因为默认单位识别异常,导致max_stream_pool被设置为0。 | 8.3.0.101 | ||
使用parquet外表查询报错The parameter destMax is too small or parameter count is larger than macro parameter。 | parquet外表的string类型字段的缓冲区空间管理错位,导致大于1K的字段内存分配不够,引起业务报错。 | 8.3.0.101 | ||
正在数据重分布的冷热表进行分区交换操作时报错Multi-temperature table only support column partition table。 | 重分布过程中创建的临时表引用了原表的冷热表属性,导致临时表创建失败。 | 8.3.0.101 |
8.3.0.108
类别 | 功能或问题描述 | 问题原因 | 问题出现版本 | 修复建议 |
|---|---|---|---|---|
新增功能 | 无 | - | - | - |
解决问题 | copy并发入库出现锁超时报错 | RecoverFromDelta放锁时错误使用加锁接口,导致锁未释放。 | 8.3.0.105 | 升级到8.3.0.108及以上版本 |
8.3.0.105
类别 | 功能或问题描述 | 问题原因 | 问题出现版本 | 修复建议 |
|---|---|---|---|---|
新增功能 | 无 | - | - | - |
解决问题 | 多count distinct走share scan出现结果集错误 | sharescan计划生成时,CTE子查询误用了上层的等价类信息,造成分布列判断错误,生成计划缺少数据重分布算子 | 8.3.0.105以前版本 | 升级到8.3.0.105及以上版本 |
升级到8.3.0版本后系统表autovacuum未生效 | 升级8.3.0前做过容灾迁移,容灾迁移会先设置autovacuum_max_workers为0,再修改成原来的默认值3,导致升级后未将该值设为预期的值6 | 8.3.0.105以前版本 | ||
修复UDF在recv接收数据时,可能存在超时后error为EAGAIN但没有被捕获直接报错的问题 | 当cn_retry开启时,socket recv 20s超时后,EAGAIN的错误码没有被捕获,直接走到报错逻辑 | 8.3.0.105以前版本 |
8.3.0.103
类别 | 功能或问题描述 | 问题原因 | 问题出现版本 | 修复建议 |
|---|---|---|---|---|
新增功能 | json/jsonb支持向量化。 | - | - | - |
解决问题 | 使用ORC外表场景偶发产生core问题。 | ORC外表foreign scan查询条件下推,在查询约束条件为bool类型表达式判断,且在表达式中存在隐式转换,且为is null条件时,偶现内部类型转换异常,内存越界(RelabelType强转var)。 | 8.3.0.103以前版本 | 升级到8.3.0.103及以上版本 |
执行1000万 batch upsert并发冲突更新场景时出现cstore buffer报错。 | cstore buffers的缓存淘汰机制为clock sweep,当前clock sweep最多为三秒三圈,因此存在无法淘汰大量使用CU(Usage Count > 3),从而出现内存可用,但报cstore buffer过小的错误。 | 8.3.0.103以前版本 | ||
实时入库场景下,入库性能长稳,但是任务停止后delta表的空间一直不释放。 | hstore opt表的delete记录可能残留,导致空间一直无法释放。 | 8.3.0.103以前版本 |
8.3.0.101
类别 | 功能或问题描述 | 问题原因 | 问题出现版本 | 修复建议 |
|---|---|---|---|---|
新增功能 | vacuum full适配binlog表。 | - | - | - |
解决问题 | analyze语句报错Could not open file "pg_clog/000000000075" | 列存表进行vacuumfull后可能提前回收clog,导致主备切换后进行analyze时无法访问clog文件。 | 8.3.0.100 | 升级到8.3.0.101及以上版本 |
使用\parallel on高并发下创建job报错duplicate key value violates unique constraint "pg_jobs_id_index" ,Key(job_id)=() already exists。 | 获取job_id处的锁未成功加上,导致并发时取到相同job_id报错。 | 8.3.0.100 | ||
多个nodegroup场景下,重分布不支持跳过指定表,导致缩容失败。 | 重分布不支持跳过指定表。 | 8.3.0.100 | ||
执行Hstore用例,网卡故障时,因为内存为超大负数,导致用例执行失败。 | 临时变量声明后,未赋值导致参数值非预期,后续再去扣减内存,内存出现超大负数。 | 8.3.0.100 |

