#23896·netdata

dbengine: 在审查引擎/守护进程边界时发现了预先存在的缺陷 (#23904)

作者: vkalintiris创建于 2026年9月15日更新于 2026年9月17日

**错误数据** - [ ] **Gorilla tier-0 字节计数器在 NETDATA_INTERNAL_CHECKS 构建中重复计数。** `pgd_disk_footprint()`(`src/database/engine/page.c:820`)会增加压缩计数器;`internal_fatal` 在 `:882-883` 中调用了两次,因此在默认情况下开启脉冲扩展图表的构建中,实际/最佳/原始字节被重复计数。修复思路:比较已计算的大小,而不是重新计算。 - [ ] **一个目录创建失败的层仍然被计数为已创建并链接到主机。** 在 `netdata_conf_dbengine_init()`(`src/daemon/config/netdata-conf-db.c:270-273`)中,失败的 `mkdir` 会记录日志并继续,使该层的 `ret` 保持为 0,因此连接循环( `:305-310`)将其计入 `created_tiers`;`src/database/rrdhost.c:568` 和 `:587` 然后将 `multidb_ctx[tier]`(NULL)链接到每个主机的 `db[tier].si` 中。修复思路:在 `mkdir` 失败时标记该层失败,并仅计数那些 `rrdeng_init()` 返回 0 的层。 - [ ] **缓存效率统计数据快照不是原子的。** `rrdeng_get_cache_efficiency_stats()`…

内容来源: netdata/netdata