Archived

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

Patch #1 for Ice 3.2: fix for IceGrid registry assert/crash

benoit
benoit Rennes, France
Hi,

There's a bug in the IceGrid registry that will cause a crash when registering duplicate well-known objects or allocatable objects with the same object adapter. For example, the following XML adapter descriptor will trigger this bug and will eventually corrupt the database if you use a release build (a debug build will assert before):
  <adapter name="Hello" endpoints="tcp" register-process="true">
    <object identity="hello" type="::Demo::Hello" property="Identity"/>
    <object identity="hello" type="::Demo::Hello" property="Identity"/>
  </adapter>

The attached patch fixes this bug and also allows restarting the IceGrid registry with an invalid database (this allows you to fix the invalid descriptor by removing the duplicate well-known object in case you run into this bug).

To apply the patch:
   $ cd Ice-3.2.0
   $ patch -p0 < patch.icegrid.txt

Cheers,
Benoit.