-
Notifications
You must be signed in to change notification settings - Fork 21
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
OpenIGTLinkIF deadlocks Slicer when no server available #9
Comments
Thanks for the feedback. I think we can make OpenIGTLinkIF wait for a few seconds before the next attempt to avoid the freeze. Can you try putting igtl::Sleep(1000) at line 683 in vtkMRMLIGTLConnectorNode.cxx?
Another approach would be simply stop attempting to connect to the server, but I've seen some people starting the client before the server and taking advantage of the client's 'repeated trial' approach. |
I tried it with igtl::Sleep(100) which seems to work fine - quick enough response, but also allows the gui to keep functioning. Also, I noticed (still on linux) that OpenIGTLinkIF does not release the socket for about 1 minute after the "active" checkbox is disabled, which prevents restarting a server on the same port in that time period. This one is not huge issue to me right now, but might be more problematic in the Slicer+PLUS use case (on same computer). |
Hmm. Slicer hangs when I try to uncheck the Active button on an open connector. edit: if I kill the server and then press Active, then it doesn't hang edit3: also hangs Slicer on exit, with |
Can you wait to bump the Slicer version for a few days? I will try to fix the hanging problem. |
Starting a client connection with no server actually available seems to be problematic, at least on linux (Windows is ok, I think). When I do this, it consistently deadlocks Slicer (with flood of "Failed to connect" debug messages on the console). In one case this managed to completely freeze the ubuntu gui (mouse moved, but button pushes had no effect for >1 min.) -- had to ssh in and kill the slicer process to regain control.
The text was updated successfully, but these errors were encountered: