Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

gateway: concurrent ACME rotation is only best-effort serialized

Đang mở
#1,008 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Lỗi
Độ rõ ràng
Cần làm rõ
Mức độ hoạt động
Ít trao đổi
Công nghệ
rust
Lĩnh vực
distributed-systems

Hướng nghiên cứu

Bắt đầu bằng việc đọc RPC RotateAcmeCredentials, hành vi của global/acme_rotation_lock trong WaveKV và ngữ cảnh bổ sung trong #935. So sánh các hướng được liệt kê về CAS hoặc fenced-lock, leader-routing và xác minh sau khi rotation với hành vi hiện tại của gateway. Done phải ngăn chặn các rotation đồng thời hoặc phát hiện và khôi phục một cách đáng tin cậy khi có sự phân kỳ về CAA và credential.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Follow-up to #935.

RotateAcmeCredentials is serialized across nodes by a TTL lock in WaveKV (global/acme_rotation_lock). WaveKV is last-writer-wins without compare-and-swap, so the lock is acquired by read-then-write: two nodes calling the RPC within a replication gap can both acquire it and rotate concurrently.

Impact

If two rotations interleave, CAA records end up pinned to one node's new account while LWW keeps the other node's credential in KV. Since #935 the state is recoverable — the published credential wins LWW and one SetCaa run re-pins every domain to it — but issuance is broken until an operator notices and intervenes.

The constraint "rotate through one gateway at a time" is advisory only: the admin endpoint uses a shared bearer token with no per-method authorization, so nothing enforces it.

Possible directions

  • Add CAS (or a fenced-lock primitive) to WaveKV and make the rotation lock a real mutex.
  • Route rotation to a designated leader node instead of accepting it on any gateway.
  • At minimum: automatic post-rotation verification that the published credential's accounturi matches every domain's CAA, alerting on divergence (see the CAA reconciliation issue).
Ngôn ngữ chính
Rust
Star
555
Fork
97
Merge trung bình
1 ngày 3 giờ
Pull request đã merge (30 ngày)
199

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của Dstack-TEE/dstack

Tất cả issue của Dstack-TEE/dstack

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.