|
locking in Connection
Both Connection::isFinished() and Connection::validate() use the same lock. When for some reason network I/O ::write() operation called inside validate() is stuck that connection is locked, but this hangs whole thread pool, because it calls isFinished() for each connection in it. Setting timeout for endoint helps a little. If it's 1 second, for that second Ice program is frozen when write() timeout happens.
The same problem we found in VisiBroker Java ORB two years ago.
|