Archived

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

Patch #2 for Glacier2, release 3.0.1

benoit
benoit Rennes, France
Hi,

Glacier2 has a bug which might cause the destruction of a session to hang. The hang shouldn't affect existing or new sessions but it will cause resources allocated for the session to leak. The hang will also prevent Glacier2 to shutdown properly.

You'll find below a patch that fixes this problem. This patch also includes [thread=2165]the previous patch for Glacier2 buffered mode[/thread]. If your source tree already includes this previous patch, you should either unpack a fresh source distribution or reverse the patch (with patch -R) before to apply this patch.

Note that this patch is not binary compatible and your Glacier2 clients will need to be changed to catch Ice::LocalException when calling the Glacier2::Router::destroySession() method, for example:
   try
   { 
       router->destroySession()
   }
   catch(const Ice::LocalException&)
   {
        // Expected: Glacier2 closed the connection
   }

Glacier2 now always closes the connection when destroySession is invoked, so getting an exception is expected.

This patch will be included in Ice 3.1.0. As usual, to apply the patch:
  $ cd Ice-3.0.1
  $ patch -p0 < glacier2.patch2.txt

Cheers,
Benoit.

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Here's a patch that includes the patch above and also includes fixes for the Glacier2 tests and demos.

    Cheers,
    Benoit.