-
Notifications
You must be signed in to change notification settings - Fork 382
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add flag to RouDi to disable killing connected processes #2248
Comments
@kozakusek can you share some details of your use case? The experimental
This API does not use a static runtime and when the Currently, only |
I have long running processes (days+) that might only want to communicate during start-up (or some catch-up) and basically go on with their life. In the meantime I want to restart the daemon to for example change the config. The other thing: I want to have different roudi configs for different tests in one junit suite.. Those are not major issues, however the flag whould be a nice thing to have, especially when there is already a filed in the config that allows this behaviour |
In this case the new experimental API is exactly what you need. You can shut down RouDi once all the nodes are destructed, restart RouDi with a different config and create new nodes to connect to the new RouDi. While multiple RouDi can run in parallel, it is not yet possible to have nodes connected to multiple RouDis in the same process at the same time. This is only possible in tests. Here you can check how to use multiple RouDi in the tests. I don't like to expose this option to the default RouDi since it only partially does what you need and it might result in unexpected behavior. For example, if you would restart RouDi and run a process which wants to subscribe to a publisher which was started with the previous RouDi, this would not be possible, leaving the users confused and finally bug tickets would appear on this repo. Furthermore, since the long running process would not destruct the static runtime, the shared memory would not be released since there are still open file descriptors. The files in If you do not know when all nodes would be destroyed and therefore also not when to stop RouDi, there are multiple options
|
Thanks for the explanation and bringing up the issues that might arise from this change. |
Brief feature description
Add flag to
iox-roudi
, (-d, --do-not-kill) which would disable sending SIGETERM and SIGKILL during shutdown.Detailed information
Currently, when
iox-roudi
is shutting down it kills all processes known to it.I've encountered a situation in which connection with RouDi is only a part of the process lifetime and I definitely don't want it to be killed if RouDi shuts down.
From what I understand it shouldn't be much work since there is already a flag in the configs that can be used to disable this. It should suffice to add a cli flag and push it through.
The text was updated successfully, but these errors were encountered: