Archived

This forum has been archived. Please start a new discussion on GitHub.

Cyclic call on proxy -> Deadlock

Hello,

I have got the problem, that Ice hangs in a deadlock, when i make a RPC on a proxy A that waits for this proxy B. The RPC of Proxy B is read-only.

For better understanding:
Proxy A                                  Proxy B
            ------Async*-----> 
                                          |
                                          |does stuff
                                          |
                                          \/
            <---new sync rpc**--
            --------result of **->  
                                           |
                                           |does stuff
                                           \/                                
           <-----result of *----

*: Sends it own proxy with the rpc as function parameter
** new read-only rpc

The system hangs on the RPC **, probably because the RPC * has not returned yet and it blocks until it has returned?

But Is Ice thread-safe? - ZeroC Documentation - ZeroC says that I can call a proxy concurrently, so why does it block?
Or may the mistake be somewhere else?

Thanks four your help
Mirko

Comments

  • bernard
    bernard Jupiter, FL
    Hello Mirko,

    Welcome to our forums.

    When using nested invocations, you have to be careful to not run out of threads in your thread pools.

    However, the very first thing I'd check here is that you activated the object adapter that hosts your "A" object.

    Best regards,
    Bernard
  • The Threadpool tip was golden. And a cause I certainly didnt expect.
    It was set to 1.
    Thank you.