Home Bug Reports

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.

Comments

  • marcmarc FloridaAdministrators, ZeroC Staff Marc LaukienOrganization: ZeroC, Inc.Project: The Internet Communications Engine ZeroC Staff
    Thanks for the bug report, we will investigate.
  • marcmarc FloridaAdministrators, ZeroC Staff Marc LaukienOrganization: ZeroC, Inc.Project: The Internet Communications Engine ZeroC Staff
    This problem will be fixed in the upcoming Ice 2.1.0. validate() now doesn't block the connection mutex anymore while sending or receiving data.

    Thanks for finding this bug and providing an analysis of the problem, too!
Sign In or Register to comment.