Thank you, Martin and Christian, for the time and care you took for your explanation.
I now better understand how to design that part of our system in a deterministic and reliable way.
Kind regards, Sid
On 2/6/23 07:37, Christian Helmuth wrote:
Hello,
On Sun, Feb 05, 2023 at 13:42:06 CET, Martin Stein wrote:
Let me share the outcome of our offline discussion with the mailing list:
As far as I understand it, while Genode's init has the feature of restarting direct service clients when their session disappears, this doesn't apply in your scenario because of the server being wrapped in an additional sub-init.
In such case, you have to manually take care for restarting your clients. A client, AFAIK deliberately doesn't consider the case that the outside world is terminating its session. So, it seems natural to me that you run into unpredictable behavior if you don't have some kind of manager that kills the client before terminating its session.
Thanks for this wrapup, Martin, it perfectly reflects my stance on the matter too.
Regarding the followong question...
Exception and try to re-establish the session. The two clients use the `vfs` plugin mechanism to access the `File_system` session provided by `rump`. During a restart of `rump` the clients sometimes page-fault and sometimes "live on" while responding to heartbeats but otherwise seem to be malfunctioning. Is the `vfs` plugin mechanism designed to handle these outages?
We refrained from implementing "probing" or "automatic retry" in many places where the it is hard to nail down a sensible default policy. I expect the VFS plugin misses your desired recover feature for this reason.
Regards