eclipse-iceoryx / eclipse-iceoryx/iceoryx2

Implement Pub/Sub & Notifier/Listener integration-tests that are highly concurrent

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

Description

## Brief feature description

Multiple bugs were raised due to the lack of concurrent communication tests. We need tests that cover:

* [x] sending/receiving messages from within different threads
* [x] many publisher reconnect to one subscriber
* [x] many subscriber reconnect to one publisher
* [ ] create/open all service types concurrently
* [ ] many listener reconnect to one notifier
* [ ] many notifier reconnect to one listener
* [ ] write tests for shared memory with pool allocator
* allocate on one side, translate pointer, write on other side - whole shm
* offset must start at 0 and must always be a multiple of the bucket size
* [ ] write full test suite for shm pool allocator
* [ ] publisher/subscriber reconnect and updates history after reconnect
* [ ] drop(subscriber), keep sample
* blocks max subscriber
* sample can be read and no data race
* [ ] drop(publisher), keep sample on receiver side
* blocks max publisher
* sample can be read
* [ ] drop(publisher), keep sample on publisher side
* blocks max publisher
* sample can still be published but will not be received unless multiple samples on publisher side are hold
* [ ] drop(publisher & subscriber), keep sample
* [ ] drop(service), keep ports
* communication shall still work
* service no longer discoverable
* when service recreated and ports are added, existing ports shall receive/can send to old ports

Contributor guide

Open the contributing guide

Research direction

The issue names Pub/Sub, Notifier/Listener, service creation, reconnect behavior, and the shared-memory pool allocator, but it does not identify files, existing tests, or entry points. Start by locating the integration-test coverage for these components and map the unchecked concurrency, reconnect, drop, and allocator cases; done means the listed scenarios are covered without races.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems, testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.