Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

secure_time: true can never sync — guest chrony is built without NTS

未关闭
#745 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
68/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
rust

调研方向

从 meta-dstack/recipes-core/chrony/chrony%.bbappend 开始,将其 PACKAGECONFIG 与 upstream 的 chrony_4.8.bb 进行比较,然后检查 dstack-util/system_setup.rs 中 chronyc waitsync gate 附近的代码。构建一个启用 NTS 的镜像,并验证 chronyc 能够同步;同时跟踪 single-node 默认值,确保在不存在可信时间源时 secure_time 为 false。

由索引模型根据 Issue 内容生成。

描述

bug security
Problem

Guest images ship /etc/chrony/chrony.conf with every time server set to NTS (server <host> iburst nts), but chronyd is compiled without NTS support. Chrony therefore has zero usable sources and never synchronizes.

Any app with secure_time: true — the manifest default (default_true) — then blocks in dstack-util system_setup.rs on chronyc waitsync, which bails → boot.error → reboot. On SEV-SNP this is a hard loop (cpus are not resettable, terminating → VMM restarts forever); on TDX it's a boot failure.

Confirmed from inside a running CVM:

chronyd 4.8 starting (... -NTS ...)
Missing NTS support
Can't synchronise: no selectable sources (10 unreachable sources)

chronyc authdata shows Cook=0 for all servers (NTS-KE never attempted), and the clock was already correct (stepped 0.000000s) — so it's not a network, clock, or platform issue.

It has gone unnoticed because every real deployment sets secure_time: false; the broken NTS sync is silent until the strict gate is enabled.

Fix

In meta-dstack, recipes-core/chrony/chrony%.bbappend adds DEPENDS += "gnutls" and an NTS config but never enables the NTS build flag. Upstream chrony_4.8.bb gates it behind PACKAGECONFIG[nts]. Add:

PACKAGECONFIG:append = " nts"

Then chronyd is built with NTS and secure_time: true can actually sync.

Separately, single-node/no-gateway deploys (no trusted time source) should default secure_time: false.

主要语言
Rust
星标
551
派生
97
平均合并
1 天 8 小时
30 天内合并 PR
182

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

Dstack-TEE/dstack 的其他 Issue

查看 Dstack-TEE/dstack 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。