Incompatible shared memory emulation strategies (Windows)
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- 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ệ
- cpp
- Lĩnh vực
- operating-systems
Hướng nghiên cứu
Bắt đầu bằng cách đọc create_shared_dir_cleaning_old_and_get_filepath và các helper Windows liên quan đến timestamp khởi động. So sánh các giá trị timestamp có thể có cho một phiên khởi động và theo dõi cách quá trình dọn dẹp chọn các thư mục dùng chung. Công việc được hoàn tất khi các ứng dụng sử dụng các chiến lược timestamp khác nhau không còn xóa các thư mục mô phỏng bộ nhớ dùng chung của nhau.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Info
Boost version: 1.89.0
Platform: Windows (x64)
Compiler: MSVC 14.3 (Visual Studio 2022)
Description
Boost.Interprocess uses a boot timestamp to construct unique per-boot shared memory file paths (via create_shared_dir_cleaning_old_and_get_filepath and related helpers). On each call, it also cleans up all shared folders that do not match the current boot timestamp. On Windows, the boot timestamp can be obtained through different strategies that return different values for the same boot session.
Impact
- applications that link against the same Boost.Interprocess version but use different strategies for getting the boot timestamp will clean up each others shared memory emulation folder
- same for applications that link against different versions of Boost.Interprocess, since the default changed between versions
Suggested fix
- standardize on a single reliable mechanism (if even possible) and deprecate all other strategies
- add a fallback/search mechanism that checks all possible locations for the current boot session
- exclude all possible locations for the current boot session from the cleanup in
create_shared_dir_cleaning_old_and_get_filepath
- Ngôn ngữ chính
- C++
- Star
- 185
- Fork
- 131
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
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
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 boostorg/interprocess
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 68/100
boostorg/interprocess#196 · 1 reaction ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 35/100
boostorg/interprocess#274 · 1 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 28/100
boostorg/interprocess#268 · 4 bình luận ·
-
Semaphore use in signals Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
boostorg/interprocess#262 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 32/100
boostorg/interprocess#253 ·
Tất cả issue của boostorg/interprocess
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Component: GLib
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
brave/brave-browser#59300 ·
-
Mute ydb/tests/functional/dstool/test_canonical_requests.py.Test.test_group_take_snapshot in main Đang mởai_reviewed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
ydb-platform/ydb#53974 · 3 bình luận ·