VR reports a load balancer change as applied when haproxy.cfg cannot be replaced
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ó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 78/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- python
- Lĩnh vực
- backend, networking
Hướng nghiên cứu
Bắt đầu với CsLoadBalancer.process() trong systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py và theo dõi cách xử lý kết quả của CsHelper.copy() sau khi xác thực haproxy.cfg.new bằng haproxy -c. Kiểm tra cách lỗi cài đặt được báo cáo cho lần chạy cấu hình, rồi so sánh với luồng xử lý lỗi xác thực hiện có. Hoàn thành khi lỗi cài đặt khiến thao tác áp dụng thất bại để máy chủ quản lý có thể khôi phục thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
problem
When a virtual router can't replace /etc/haproxy/haproxy.cfg, it still reports a load balancer config change as applied.
CsLoadBalancer.process() (systemvm/debian/opt/cloud/bin/cs/CsLoadBalancer.py) writes the new config to haproxy.cfg.new, checks it with haproxy -c, and then installs it with CsHelper.copy(). CsHelper.copy() catches the IOError, logs Could not copy /etc/haproxy/haproxy.cfg.new to /etc/haproxy/haproxy.cfg, and returns. The router then reloads HAProxy, which reads the old file, and the config run ends successfully.
The management server therefore gets a successful answer, records the change as applied, and doesn't roll it back, while the router keeps serving the old configuration. A config that fails haproxy -c already makes the apply fail, so only this path is silent.
versions
4.22 (the code is the same on main).
The steps to reproduce the bug
- Create a load balancer rule on an isolated network or VPC served by a virtual router.
- On the router, make the config file unwritable, for example
chattr +i /etc/haproxy/haproxy.cfg. - Change the rule, for example
updateLoadBalancerRule algorithm=leastconn, or add a rule. - The API call succeeds and
listLoadBalancerRulesshows the new values. The router's/var/log/cloud.loghasCould not copy /etc/haproxy/haproxy.cfg.new to /etc/haproxy/haproxy.cfg, and/etc/haproxy/haproxy.cfgstill has the old config.
What to do about it?
Fail the apply when the new config can't be installed, the same way as when it fails haproxy -c, so that the management server sees the failure and rolls back.
- Ngôn ngữ chính
- Java
- Star
- 3.1k
- Fork
- 1.4k
- Merge trung bình
- 6 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 17
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/cloudstack
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/cloudstack#14645 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/cloudstack#14631 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
apache/cloudstack#14625 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Remote access VPN users are disconnected on every LB, ACL, port forward or firewall change (xl2tpd restarted on every iptables pass)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/cloudstack#14545 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Hardening] F-21: Base64-Encoded User Data Containing Plain Text Passwords in DB.Có thể đã có người làm @DaanHoogland đã nhận 4 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/cloudstack#14530 · 5 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của apache/cloudstack
Issue tương tự
-
type: dependency-upgrade
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 61/100
spring-projects/spring-graphql#1556 ·
-
hermes-queue
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 91/100
chrisalunlloyd2-sudo/mindpalace#373 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug priority: lowest
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
SkriptLang/Skript#8953 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
quality-assurance
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Paul-Austin-Oswego-CSC480-HCI521/gift-app#228 ·
Maintainer thường phản hồi trong vòng 1 ngày