Archived

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

calling ice proxy within an AMI callback

I am calling another ice proxy within an AMI callback. Is there anything inherently wrong with that. The call is blocking and never returning even though I have verified that the call has completed on the server side of the equation.

Client invocation side:

Server object finishes processing and returns:

Client invocation never returns.

Any guidance on what to be looking for or how to handle such a situation would be appreciated.

Comments

  • One more piece of info: the proxy being called when visibilitiesWithIntervalsUpdated is invoked was passed to the icebox process as an "observer" proxy to be invoked when data is updated. This mechanism works just fine if it is not invoked from an AMI callback.

  • xdm
    xdm La Coruña, Spain

    Making a nested synchronous twoway invocation from an AMI callback, with the default client thread pool configuration (1 thread) results in a deadlock.

    See https://doc.zeroc.com/ice/3.7/client-server-features/the-ice-threading-model/nested-invocations

    You can avoid this by using AMI for the second call, or increase the client side thread pool

  • Thanks for the update. I kinda figured that was the case but I couldn't find the exact docs to explain. I appreciate the help.