ResourceConfigCache Staleness causes same workflow to be deleted multiple times.
Chưa có ai nhận issue này.
- #2958 của @himanshukandwal — đã đóng, không merge
Đá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
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- java
- Lĩnh vực
- distributed-systems
Hướng nghiên cứu
Theo dõi TaskDriver.delete qua Helix Controller Pipeline, tập trung vào các cập nhật bộ nhớ đệm ResourceConfig và thứ tự của các sự kiện ResourceConfigChange và OnDemandRebalance. So sánh cách ResourceConfig và TaskDataCache được chuẩn bị sau khi xóa; hoàn thành có nghĩa là một workflow đã bị xóa không được đưa vào lại và chỉ bị xóa một lần, kể cả trong các chuỗi sự kiện khi cluster bận.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
When a Workflow is marked as deleted (TargetState.DELETE) via TaskDriver.delete API, then the workflow is deleted by the Helix Controller Pipeline in the next run. With deletion, the entries from ZK are deleted and the TaskDataCache is also updated. However, the other entries for this workflow are still present in ResourceConfig (Base) cache.
Usually, the next event which is in the pipeline is the ResourceConfigChange Event (as the resource config was deleted), which takes care of the resourceConfig cache update, but in case of a very busy cluster, other change event can be already earlier in the pipeline than the scheduled ResourceConfigChange event. Now, the ResourceConfig cache is updated selectively and not always, so the ResourceConfig cache keeps the deleted workflow entries, and when the Workflow (TaskDataCache) is prepared, these (previously deleted) workflow entries comes back in again. This causes, same workflows to be deleted multiple times. (Until we see the ResourceConfigChange or OnDemandRebalance event).
TLDR: In Busy Cluster, the resourceConfig cache can take time to be eventually consistent and this causes duplicate deletes of the same workflow.
Impact: Some customers delete and re-create workflow with same name and this behavior causes the recently deleted workflow to be deleted again (unexpectedly).
To Reproduce
Since this happens in a busy cluster where a lot of events are happening (indeterministically) so its not possible to reproduce this behavior. This however is evident in the cluster logs.
Expected behavior
Deletion should happen once only, and ResourceConfig cache should be updated immediately to serve the next events in a reliable and deterministic manner.
Additional context
Add any other context about the problem here.
- 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