|
Freeze due to unheard reply
Since changing to Ice 3.0.0 we have experienced a strange lock-up behaviour.
Our client is stuck in a twoway call in IceInternal::Outgoing::invoke() on an infinite wait() (We deliberately don't have a timeout setup right now).
However our server process has completed the call as usual, and according to our packetsniffer the client did recieve the reply from the server.
All this happens while our client is in a critical region, so other incomming calls (the client is also a server process, and can get push-style updates, using oneway invocations) are blocked using (recursive) mutex exclusion. The client does typically receive a call in the situations where it gets blocked.
All the server processes run along as if nothing extraordinary has happened, and other connected clients can continue unaffected (Though they may later experience lock-ups of their own).
That is about all I can think of saying right now, but I'll be happy to provide stack traces and the like if that would be of any help.
|