icegridnode fails to apply configuration changes to services using a shared communicator

grembogrembo Michael GmelinOrganization: Grem Equity GmbHProject: E-Commerce platformMember

When applying configuration changes to icebox services that are using a shared communicator (e.g. icegridadmin -e "application update --no-restart app.xml"), property changes are not propagated correctly to services. This is due to the change to using IceBox.SharedCommunicator.Properties to identify the property facet of shared communicators in recent versions of Ice.

This is quite problematic when updating service properties, as without enabling tracing, changes will fail to apply silently and other changes to the configuration that would've been applied afterwards also won't make it to the service, leaving the application in an inconsistent state and confusing the user of the grid.

When adding these trace properties to ICE_CONFIG:

  IceGrid.Registry.Trace.Application=2
  IceGrid.Registry.Trace.Server=2

the following error message is shown in the registry log:

  OutgoingAsync.cpp:547: Ice::FacetNotExistException:
  facet does not exist:
  identity: `30842DED-4C0D-1726-A6AD-AF111C831A37/admin'
  facet: IceBox.Service.MyService.Properties
  operation: setProperties

The problem is in ServiceI.cpp, where the facet name is not constructed correctly to account for the new naming convention.

We'll open a pull request on github that corrects this problem shortly. We already committed a fix to the FreeBSD port of Ice: https://svnweb.freebsd.org/ports?view=revision&revision=426170.

Comments

  • AndiDogAndiDog Andreas SommerOrganization: PayPlusProject: PayPlus internal payment softwareMember
    edited November 2016

    Pull request just opened for review. It would be great to port this back to 3.6 as well.

  • joegeorgejoegeorge Jupiter, FloridaJoe GeorgeOrganization: ZeroC, Inc.Project: IceAdministrators, ZeroC Staff ZeroC Staff

    Thanks for the pull request! :smile:

Sign In or Register to comment.