Ice::Communicator not initiating a connection
I'm lost with the following problem. My application (a server process written in C++ running on ARM based Linux computers controlling astrophotography equipment) uses multiple servers, one of which is contacted by a GUI client. This server then coordinates access to objects on other servers and controls the complete astrophotography workflow. This works very nicely with Ice-3.7.1 on Mac OS X. However, on Ubuntu 16.04, the server never performs any network related activity but simply blocks in checkedCast. If I replace checkedCast by uncheckedCast, it simply blocks in the next call that requires a connection to be set up. I looks like the Ice::Communicator does not want to initiate a connection.
Some more details:
- I have made sure that the server thread pool is not limited to a single thread, but this did not change anything.
- The server seems to be able to talk back to the GUI client (some monitoring functions use callbacks to deliver server status changes to the GUI client).
- The same connect string "Modules:default -h mount.local. -p 10000" works when used in a standalone program on the Linux system, i.e. the problem shows up only in the context of the server process.
- The host name "mount.local." can be resolved, pinged and sshd to.
- Tracing the activities of the server process with strace shows that it never does any network related functions: no name resolution, it does not create a socket, it does not try to connect. It is just waiting in some futex system call presumably for some lock or some system activity to complete, but I have no idea which activity that could be.
So: what can I do to
a) understand what causes the call to checkCast to fail
b) fix the problem hopefully?