Home Help Center

Cyclic call on proxy -> Deadlock

MirkoWaechterMirkoWaechter Member Mirko WaechterOrganization: University of KarlsruheProject: ArmarX Robot Framework
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

  • bernardbernard Jupiter, FLAdministrators, ZeroC Staff Bernard NormierOrganization: ZeroC, Inc.Project: Ice ZeroC Staff
    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
  • MirkoWaechterMirkoWaechter Member Mirko WaechterOrganization: University of KarlsruheProject: ArmarX Robot Framework
    The Threadpool tip was golden. And a cause I certainly didnt expect.
    It was set to 1.
    Thank you.
Sign In or Register to comment.