eclipse-iceoryx / iceoryx

Eclipse iceoryx™ - true zero-copy inter-process-communication
https://iceoryx.io
Apache License 2.0
1.57k stars 373 forks source link

service discovery: terminated publishers and servers are not removed from the service registry #2027

Open niclar opened 9 months ago

niclar commented 9 months ago

We're in the process of implementing service discovery using the iceoryx primitives.

It seems that terminated publishers and servers are not automatically removed from the service registry, hence unavailable services (terminated for whatever reason since registering with the service registry) are incorrectly reported as found / available.

Is there a way to automatically get iceoryx to remove terminated publishers/servers from the service registry ? If not can/should the roudi heartbeat / timeout be reused , or is this something we need to layer on top of iceoryx using application layer heartbeats and "manually" removing entries from the service registry?

Thanks

elBoberido commented 9 months ago

@niclar this is only possible when RouDi is started with -m on to enable the monitoring of the processes. This has some disadvantages though. See the discussion in https://github.com/eclipse-iceoryx/iceoryx/discussions/1374 and especially this comment https://github.com/eclipse-iceoryx/iceoryx/discussions/1374#discussioncomment-2877706.

There is also this issue the improve the keep-alive handling https://github.com/eclipse-iceoryx/iceoryx/issues/1361