fluent / fluent/fluent-logger-java
Bad thread interleaving may cause unexpected crash
- Ngôn ngữ chính
- Java
- Star
- 210
- Fork
- 86
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Commit version - da14ec3
Describe the bug
It is possible to encounter an unexpected crash due to using the shared variable array in multiple locations (variable name is counters, in TestFluentLogger). In one place at Line 403 sets the value in this data-structure, whereas another location at Line 461 gets the value from this shared variable. However, there is no synchronization given between these accesses. As a result, anytime due to the existence of multiple threads, the program may crash.
Expected behavior
No crash is expected
Additional context
When I investigated the TestFluentLogger class, I found that the counters is a shared variable declared at Line 385 that is used at Line 403, Line 461. Here, the unexpected crash or inconsistency may occur if multiple threads interleave.
Environment:
I ran the test on an Ubuntu 20.04 LTS machine using OpenJDK 1.8.0_312.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu bằng cách xem xét lớp TestFluentLogger tại phần khai báo counter quanh dòng 385 và các lần truy cập của nó quanh các dòng 403 và 461. Tái hiện hoặc kiểm tra test trong điều kiện đan xen giữa nhiều thread trên môi trường Java đã nêu, sau đó xác minh rằng các lần truy cập dùng chung không còn cho phép xảy ra crash hoặc tạo ra kết quả không nhất quán.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java
- Lĩnh vực
- testing
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100