ID 268665 - Crash due to invalid port objects when tearing down node graph either by creating a new project or on exit

Follow

Problem summary:

When working with a project that contains nested LiveGroup nodes in a disabled state, a crash may occur when closing the current Katana project, which happens when choosing File > New or File > Quit.

Steps to reproduce:

  1. Execute the following lines of code in a Python tab:

def CreateNodeGraph():    firstDotNode = NodegraphAPI.CreateNode('Dot', NodegraphAPI.GetRootNode())    secondDotNode = NodegraphAPI.CreateNode('Dot', NodegraphAPI.GetRootNode())     outerLiveGroupNode = NodegraphAPI.CreateNode('LiveGroup', NodegraphAPI.GetRootNode())    outerLiveGroupNode.addInputPort('i0').connect(firstDotNode.getOutputPort('output'))    outerLiveGroupNode.addOutputPort('o0').connect(secondDotNode.getInputPort('input'))     innerLiveGroupNode = NodegraphAPI.CreateNode('LiveGroup', outerLiveGroupNode)    innerLiveGroupNode.addInputPort('i0').connect(outerLiveGroupNode.getSendPort('i0'))    innerLiveGroupNode.addOutputPort('o0').connect(outerLiveGroupNode.getReturnPort('o0'))     innerLiveGroupNode.publishAsset('/tmp/inner.livegroup')    outerLiveGroupNode.publishAsset('/tmp/outer.livegroup')     innerLiveGroupNode.getParameter('disable').setValue(1, 0)    innerLiveGroupNode._setEditable(True)     QtCore.QTimer.singleShot(1000, KatanaFile.New)  # Create the repro node graph twiceCreateNodeGraph()QtCore.QTimer.singleShot(2000, CreateNodeGraph)

Expected behaviour:

A new project is created, and Katana keeps running.

Actual behaviour:

Katana crashes with a stack trace pointing to the Node::isLocked() function in the node graph's C++ internals.

Workaround:

No known workaround.

Reproduced versions/platforms:

  • 2.1v1/Linux
  • 2.5v4/Linux
  • 2.5v5/Linux

Customer version/platform:

  • 2.1v4/Linux
  • 2.5v4/Linux
  • 2.5v5/Linux

    We're sorry to hear that

    Please tell us why