Regeneration of DISABLE operations when setting instance operations
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java
- Lĩnh vực
- distributed-systems
Hướng nghiên cứu
Bắt đầu với getActiveInstanceOperation() và getInstanceOperation(), sau đó tái hiện hai yêu cầu EVACUATE thông qua API setInstanceOperation và kiểm tra cấu hình instance trong ZooKeeper. Truy tìm lý do EVACUATE gây ra một thao tác DISABLE mới khi HELIX_ENABLED=false trong các trường legacy. Hoàn tất khi các thao tác EVACUATE lặp lại không còn tạo lại timestamp DISABLE hoặc các mục LEGACY_DISABLED_TYPE, và các quá trình chuyển trạng thái của instance diễn ra bình thường.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
There is a bug in the instance operation handling logic that causes an infinite cycle of regenerated DISABLE operations when applying operations like EVACUATE to an instance with HELIX_ENABLED=false in legacy fields. This prevents proper instance lifecycle transitions and causes unexpected behavior in instance swapping scenarios.
To Reproduce
- Create an instance in the cluster.
- Set DISABLE operation with USER source:
Apply to InstanceConf...
curl -X POST "http://<host>:<port>/admin/v2/clusters/<cluster>/instances/<instance>?command=setInstanceOperation&instanceOperationSource=USER&instanceOperation=DISABLE" - Set EVACUATE operation with AUTOMATION source:
Apply to InstanceConf...
curl -X POST "http://<host>:<port>/admin/v2/clusters/<cluster>/instances/<instance>?command=setInstanceOperation&instanceOperationSource=AUTOMATION&instanceOperation=EVACUATE" - Set EVACUATE operation again with AUTOMATION source
- Check the instance configuration in ZooKeeper
After the second EVACUATE operation, a new DISABLE operation is generated with:
- Updated timestamp (more recent than the EVACUATE timestamp)
- Added LEGACY_DISABLED_TYPE field
- The cycle repeats with each subsequent evacuate operation
Expected behavior
The DISABLE operation should not be regenerated with new timestamps when setting a different operation. Instance operations should be updated consistently without creating an infinite cycle.
Additional context
RCA:
The regeneration happens because:
- getActiveInstanceOperation() returns the last operation (EVACUATE)
- EVACUATE is in INSTANCE_DISABLED_OVERRIDABLE_OPERATIONS
- This causes getInstanceOperation() to override it with a newly generated DISABLE operation
- Ngôn ngữ chính
- Java
- Star
- 505
- Fork
- 258
- Merge trung bình
- 4 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không 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/helix
-
Four TestConstraintBasedAlgorithm tests pass when nothing is thrownCó thể đã có người làm @sharanggupta đã nhận hôm nay. Đang mở
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
-
Helix ZkClient times out after successful ZooKeeper SASL DIGEST-MD5 authenticationCó thể đã có người làm @adityaanikam đã nhận 43 ngày trước. Đang mởbug
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
-
NPE in canCompleteSwap if path doesn't existsCó thể đã có người làm @waterWang đã nhận 106 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 50/100
-
Legacy IZkStateListenerI0ItecImpl causes zombie participants by discarding session IDsCó thể đã có người làm @LZD-PratyushBhatt đã nhận 457 ngày trước. Đang mởbug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
Issue tương tự
-
bug documentation good first issue help wanted priority low size XS
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
martin-francois/symphony-trello#1351 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Add test coverage for ConvertUtil.parseDate() with NULL inputCó thể đã có người làm @mirajul-mollah7 đã nhận hôm nay. Đang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
eclipse-sw360/sw360#4792 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
aws/aws-emulator#30 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 4 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100