Chuyển tới nội dung chính
Version: 4.1

3.0.2

Hai lỗi được tìm ra bằng cách quan sát một máy chủ không chịu cập nhật, và một chứng chỉ không bao giờ nên có trong kho mã.

Bản cập nhật chạy mãi mãi​

Một panel báo 2.1.17 trong khi chạy một tệp nhị phân 3.0.1, và mọi bản cập nhật được bảo chạy đều kết thúc ở cùng một chỗ: nhật ký dừng giữa chừng một câu sau migration cuối cùng có tồn tại, và không gì khác từng xảy ra.

Tệp phiên bản được ghi ở bước cuối cùng của một bản cập nhật, có chủ ý — nó là bản ghi duy nhất về những gì một máy chủ chạy, nên ghi nó trước công việc là điều biến một bản cập nhật thất bại thành một máy chủ tin rằng nó đã hiện hành. Bất cứ thứ gì dừng lần chạy trước dòng đó để lại các tệp nhị phân mới, các migration đã chạy, và một số phiên bản từ nhiều tháng trước. Panel rồi đưa ra cùng bản cập nhật đó lần nữa, và nó dừng ở cùng một chỗ, mãi mãi.

Panel giới hạn một bản cập nhật đầy đủ ở mười phút. Ít hơn công việc bên dưới: mỗi migration theo từng phiên bản được phép 300 giây riêng của nó, và một bản phát hành dựng lại webmail tốn vài phút cho việc đó trước khi migration đầu tiên bắt đầu. Không gì đọc trạng thái thoát nên một lần chạy bị cắt không để lại dấu vết ở đâu.

Một bản cập nhật bắt đầu dưới một trình cập nhật cũ hơn sẽ chạy trình cập nhật cũ đó đến cùng. Dù nó đã làm mới CLI riêng của panel. bash đọc một tập lệnh từng phần từ inode mà nó đã mở, và thay tệp sẽ huỷ liên kết inode đó thay vì đổi nó, nên việc làm mới không ảnh hưởng được tới lần chạy đang thực hiện nó — một bản sửa phát hành trong CLI áp dụng từ bản cập nhật kế tiếp, không bao giờ từ bản cài nó. Đó là cách máy chủ được tìm thấy bốn phút sau một lần lấy releases/2.1.797/UPDATE.sh: người tiền nhiệm của 3.0.1 đi qua mọi số phiên bản giữa phiên bản đã cài và mục tiêu, 998.970 số, trong khi bản thay thế của 3.0.1 nằm trên đĩa chưa được đọc.

Trình cập nhật giờ không chạy từ một thư mục mà nó sắp thay thế.

Bảo mật​

  • Một khoá riêng được phát hành cho mọi máy chủ. Chứng chỉ dự phòng mà các mẫu vhost nêu tên đến từ một cặp được commit vào kho cấu hình: tự ký, CN=hitechcloud.org, hết hạn tháng 2 năm 2026, và có khoá riêng của nó trong kho. Nó không phải một bí mật theo nghĩa nào hữu ích — mọi bản clone đều có nó, và mọi máy chủ đưa ra nó đều đưa ra một chứng chỉ mà khoá được chia sẻ với mọi máy chủ khác và với bất kỳ ai từng kéo kho.

    Mười mẫu giờ nêu tên chứng chỉ theo từng máy mà trình cài đặt tạo ra, với tên của chính máy trong subject và SAN, 0600 trên khoá, và tạo lại một tháng trước khi hết hạn. Bản cập nhật tạo nó nếu thiếu, chỉ lại mọi vhost còn nêu đường dẫn cũ, và xoá cặp dùng chung ở bất cứ nơi nào nó rơi vào.

Ghi chú​

Một máy chủ đã kẹt giữa hai phiên bản tới đây vẫn lệch. Bản cập nhật nói như vậy, và nói lệnh nào hoàn tất nó, thay vì đóng dấu lên khoảng trống — khoảng trống chính là tập các migration có thể chưa chạy, và ghi nó là đã xong sẽ bỏ qua chúng mãi mãi.

Trang này có hữu ích không?