ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ClickHouse v26.2.11.5-stable 修复清单解析:S3 读取、凭据脱敏与物化视图缓存问题

ClickHouse v26.2.11.5-stable 修复清单解析:S3 读取、凭据脱敏与物化视图缓存问题 数据库OLAP列式数据库大数据实时分析数据分析【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址https://gitcode.com/GitHub_Trending/cli/ClickHouse点击查看免费下载导读本文围绕 ClickHouse 发行版v26.2.11.5-stable的官方变更日志docs/changelogs/v26.2.11.5-stable.md展开逐一解读该补丁版本中包含的用户可见缺陷修复Bug Fix并深入 ClickHouse 仓库源码剖析每项修复背后的根因、影响范围与验证路径。读完本文你将了解S3/对象存储 HEAD 请求缺失Content-Length时为何会丢文件、system.databases如何泄露凭据、S3 客户端析构抛异常为何会导致服务端终止以及刷新物化视图的缓存键为何会引用过期 UUID。本文适用于正在评估升级路径的 ClickHouse 运维人员以及需要理解对象存储读取与物化视图刷新机制的开发者。版本背景项目内容发行版本v26.2.11.5-stable源码提交f6f848d87c4对比基线v26.2.10.10-stable4fc1e4f53f8变更类型Bug Fix官方稳定版中用户可见的行为错误 NOT FOR CHANGELOG / INSIGNIFICANT该版本属于 26.2 稳定分支上的例行缺陷修复版本全部变更均为向后移植Backport自主分支的修复补丁不包含新功能或破坏性变更适合生产环境在充分验证后平滑升级。Bug Fix 一HEAD 请求缺失 Content-Length 导致 S3 文件被跳过所属 Issue#102368BackportPR#99971问题现象当 ClickHouse 通过 S3 接口访问对象存储时会先对对象发起 HEAD 请求以获取元数据。若存储服务端例如 GCS 开启解压转码后在 HEAD 响应中不返回Content-Length头ClickHouse 可能把该对象当作大小未知甚至跳过该文件导致读取到的文件数量少于实际。根因分析从源码可以确认 ClickHouse 对未知对象大小有专门的处理约定。在 src/Disks/DiskObjectStorage/ObjectStorages/S3/S3ObjectStorage.cpp 中readObject在构造ReadBufferFromS3时会把StoredObject::UnknownSize这一哨兵值显式映射为std::nullopt即读到 EOFbytes_size可能为StoredObject::UnknownSize——例如一个省略了Content-Length的 HTTP 源。这是一个哨兵值而非真实大小因此必须映射为std::nullopt读到 EOF否则ReadBufferFromS3会将其当作真实大小并永远执行范围读取。该修复正是围绕这一逻辑展开此前当 HEAD 响应缺失Content-Length如 GCS 解压转码场景时大小判断路径存在歧义可能错误地跳过对象修复后统一将未知大小映射为读到 EOF保证ReadBufferFromS3按流式方式完整读取。影响范围与建议受影响场景使用 S3 兼容存储含 GCS且存储端可能省略Content-Length的部署尤其是开启对象转码/解压的服务端。升级建议升级到v26.2.11.5-stable后可通过SELECT count() FROM s3(...)校验读取文件数是否与对象清单一致。Bug Fix 二system.databases的 SETTINGS 段泄露凭据所属 Issue#101532BackportPR#100800问题现象部分目录Catalog类数据库在SELECT * FROM system.databases的SETTINGS字段中会暴露敏感凭据如访问密钥、令牌等造成信息泄露。根因分析从源码可以看到ClickHouse 仓库中已经存在一套针对数据湖/DLF 目录凭据的脱敏机制。在 src/Databases/DataLake/DataLakeConstants.h 中定义了SETTINGS_TO_HIDE映射表和默认脱敏规则DEFAULT_MASKING_RULE将敏感值替换为[HIDDEN]覆盖的敏感设置包括目录凭据catalog_credential、auth_headerAWS 凭据aws_access_key_id、aws_secret_access_key、aws_external_id遗留storage_*别名storage_catalog_credential、storage_auth_header、storage_aws_access_key_id、storage_aws_secret_access_keyOneLake 凭据onelake_client_secret、onelake_bearer_token、onelake_refresh_tokenGoogle 凭据google_adc_client_secret、google_adc_refresh_tokenDLF 凭据dlf_access_key_id、dlf_access_key_secret本次修复PR #100800正是将上述脱敏逻辑应用到system.databases查询结果中确保凭据类设置在被系统表输出前被隐藏防止低权限用户通过系统表读取敏感配置。验证与建议升级后可执行以下命令验证脱敏生效SELECT name, settings FROM system.databases WHERE name your_catalog_db; -- settings 中的凭据字段应显示为 [HIDDEN]注意脱敏仅影响系统表展示路径不影响实际连接目录时对凭据的正常使用。Bug Fix 三S3 Client 析构函数异常逃逸导致服务端终止所属 Issue#102434BackportPR#101798问题现象当 S3 客户端对象S3::Client在其析构函数~Client中抛出异常时异常会逃逸到 ClickHouse 服务端进程顶层导致整个服务端进程意外终止。根因分析C 中在栈展开或对象销毁期间抛出异常本身属于未定义行为且析构函数抛异常极难被调用方捕获。从修复意图可以推断PR #101798 的改动方向是保证S3::Client析构路径上不抛异常例如对析构期间可失败的操作进行错误抑制或降级处理从而避免服务端在正常的对象生命周期结束阶段被异常击穿。该问题与 ClickHouse 基于 Poco/AWS SDK 的 S3 客户端生命周期管理相关属于崩溃类高优先级缺陷。影响与建议影响范围任何使用 S3 客户端磁盘、备份、s3表函数等的部署在连接异常或资源释放阶段的潜在进程崩溃风险。升级建议该修复消除了崩溃根因之一建议结合自身 S3 使用场景尽快升级验证。NOT FOR CHANGELOG刷新物化视图的过期 UUID 缓存所属 Issue#102416BackportPR#98678问题现象查询存储缓存query storage cache中存在过期的表 UUID导致可刷新物化视图refreshable materialized viewrefreshable MV在目标表发生重建/迁移后刷新时误报UNKNOWN_TABLE错误。根因分析ClickHouse 中表以 UUID 作为全局标识物化视图刷新任务在启动时会在存储缓存中记录目标表的 UUID。当表被删除重建UUID 变化后旧缓存条目未及时失效刷新任务仍按旧 UUID 解析目标表从而触发UNKNOWN_TABLE。修复PR #98678聚焦于确保缓存中的 UUID 与当前表注册状态保持同步避免陈旧缓存导致刷新失败。该修复被标记为 NOT FOR CHANGELOG / INSIGNIFICANT但本质仍是用户可见行为修复对生产环境使用 refreshable MV 的部署有实际意义。升级与验证建议升级路径v26.2.11.5-stable相对基线v26.2.10.10-stable仅包含修复性变更可直接按常规滚动升级流程操作。回归验证清单S3/GCS 读取核对s3()表函数与 S3 磁盘的读取文件数与对象清单一致系统表脱敏抽查system.databases的SETTINGS输出刷新物化视图对存在重建历史的表执行REFRESH MATERIALIZED VIEW确认不再出现UNKNOWN_TABLE。源码深挖入口如需深入了解对象大小处理可继续阅读 S3ObjectStorage.cpp 中readObject/readSmallObjectAndGetObjectMetadata的实现凭据脱敏规则可查阅 DataLakeConstants.h。赞分享数据库OLAP列式数据库大数据实时分析数据分析【免费下载链接】ClickHouseClickHouse® is a real-time analytics database management system项目地址https://gitcode.com/GitHub_Trending/cli/ClickHouse点击查看免费下载相关推荐ClickHouse v25.12.10.7-stable 版本解读distroless 镜像、凭据脱敏与四大关键修复ClickHouse v25.12.10.7 stable 版本解读distroless 镜像、凭据脱敏与四大关键修复 本篇技术指南以 ClickHouse数据库OLAP列式数据库大数据实时分析数据分析ClickHouse v26.4.2.10-stable 变更详解查询脱敏函数、索引缓存优化与数据正确性修复ClickHouse v26.4.2.10 stable 变更详解查询脱敏函数、索引缓存优化与数据正确性修复 本指南以 ClickHouse 官方 chang数据库OLAP列式数据库大数据实时分析数据分析ClickHouse v25.4.7.66-stable 版本解析查询条件缓存优化、数据湖修复与关键 Bug 修复清单ClickHouse v25.4.7.66 stable 版本解析查询条件缓存优化、数据湖修复与关键 Bug 修复清单 本文基于 ClickHouse 官方发数据库OLAP列式数据库大数据实时分析数据分析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表