eclipse-iceoryx / eclipse-iceoryx/iceoryx2

Threadsafe ZeroCopyConnection creation

Open
#671 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
2.5k
Forks
185
Avg merge
1d 23h
Merged PRs (30d)
47

Description

## Brief feature description

Currently, the ZeroCopyConnection cannot be created threadsafe - caused by the Windows platform abstraction layer where certain platforms require besides a shared memory also a state file that tracks the access rights, size or existence of the shared memory.

This is a race between the shared memory itself and the state file, when something is opened while another process destroys it. Currently, iceoryx2 can guarantee that a ZeroCopyConnection is never created/dropped concurrently but it would improve the robustness of the construct if this would be possible.

The same issue occurs in the DynamicStorage, so probably the same fix can be applied for both the ZeroCopyConnection and the DynamicStorage. Otherwise create a separate issue.

## ToDo

* [ ] Enable test in `zero_copy_connection_trait_tests.rs` and fix issue
* [ ] Enable test in `dynamic_storage_trait_tests.rs` and fix issue or open a separate one.

Contributor guide

Open the contributing guide

Research direction

Start by enabling the test in zero_copy_connection_trait_tests.rs and reproduce the concurrent creation/drop race in the Windows platform abstraction layer. Then inspect the corresponding test in dynamic_storage_trait_tests.rs and determine whether the same fix applies or needs a separate issue. Done means the enabled tests pass without races for ZeroCopyConnection and, if applicable, DynamicStorage.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.