ID 349498 - Implicit Resolvers are applied to expanded locations (/root) when connecting Render nodes and when opening a project with a Render node

Follow

Problem summary

When opening a scene that contains a Render node (that is not locked), a sync of the output ports is triggered which ultimately also leads to Implicit Resolvers being applied to expanded locations (/root).

Customer reported version
Katana 2.1v1

Customer reported platform
Linux

Steps to reproduce

1) Register an Op that prints some debug output as an Implicit Resolver as follows: 


from Katana import ( FnAttribute, Nodes3DAPI,)Nodes3DAPI.RegisterImplicitResolver(  Nodes3DAPI.ImplicitResolverStage.AfterStandardResolvers,  'DebugOp',  FnAttribute.GroupBuilder()  .build(), False);

2) Create a simple project containing a CameraCreate node connected to a Render node. Note that the Implicit Resolver Op's output is printed to the console on connecting the Render node's input port.

3) Open a new project and then re-open the simple project created in step 2. Note that the Implicit Resolver Op's output is printed to the console.

Workaround
- Avoid setting custom Implicit Resolver Ops that are evaluated at /root
- The Implicit Resolvers aren't applied when the Render node is locked (i.e. it's 'lock' parameter checkbox is enabled). However, this also means the asset information for this Render node is no longer updated.

Reproduced by support
This bug has been reproduced in:
Katana 2.6v4 - CentOS 7.4
Katana 2.1v1 - CentOS 7.4
Katana 2.0v1 - CentOS 7.4

Earliest version tested
Katana 2.0v1
- The behaviour causing this issue was introduced in this version

Expected behaviour
Implicit Resolvers should only be applied when they are explicitly turned on or when rendering.

Actual behaviour
Implicit Resolvers are also applied when connecting a Render node and when opening a project with a connected Render node.

    We're sorry to hear that

    Please tell us why