eclipse-iceoryx / iceoryx2

Eclipse iceoryx2™ - true zero-copy inter-process-communication in pure Rust
https://iceoryx.io
Apache License 2.0
448 stars 22 forks source link

Improve error codes on failed service creation #183

Open elBoberido opened 2 months ago

elBoberido commented 2 months ago

Brief feature description

Currently, when a service is created by two parties concurrently, some of the error codes are not too helpful and sometimes misleading. Similar with concurrently opening and closing a service.

This are the error codes which are triggered in service_tests.rs

PublishSubscribeCreateError::AlreadyExists,
PublishSubscribeCreateError::Corrupted,
PublishSubscribeCreateError::IsBeingCreatedByAnotherInstance,
PublishSubscribeOpenError::DoesNotExist,
PublishSubscribeOpenError::PermissionDenied,
PublishSubscribeOpenError::ServiceInCorruptedState,
PublishSubscribeOpenError::UnableToOpenDynamicServiceInformation,

The latter, for example, should only trigger DoesNotExist. See also https://github.com/eclipse-iceoryx/iceoryx2/pull/174#discussion_r1561100720.

The other error codes leak implementation details and only occur due to the decentralized nature of iceoryx2. It needs to be determined if they can be mapped to DoesNotExist without shadowing an actual error when, e.g. the permissions really do not exist.