ParaView 6.2.0-RC1 throws errors for non unique nodes

Hello,

I am getting this error while testing ParaView 6.2.0-RC1:

(   2.503s) [pvbatch         ]    vtkDataAssembly.cxx:591    ERR| vtkDataAssembly (0x7c87cc2a7f40): A child node with name 'SIDEWALL' already exists under parent with id=4
(   2.504s) [pvbatch         ]    vtkDataAssembly.cxx:591    ERR| vtkDataAssembly (0x7c87cc2cdda0): A child node with name 'STREAM_00_SIDEWALL' already exists under parent with id=0
(   2.505s) [pvbatch         ]    vtkDataAssembly.cxx:591    ERR| vtkDataAssembly (0x7c87cc296820): A child node with name 'STREAM_00_SIDEWALL' already exists under parent with id=0
(   2.505s) [pvbatch         ]    vtkDataAssembly.cxx:591    ERR| vtkDataAssembly (0x7c87cc296ac0): A child node with name 'STREAM_00_SIDEWALL' already exists under parent with id=0
(   2.511s) [pvbatch         ]    vtkDataAssembly.cxx:591    ERR| vtkDataAssembly (0x7c87cc20a900): A child node with name 'STREAM_00_SIDEWALL' already exists under parent with id=0

My guess is that it coming from the Conduit Source. Has something changed there?

Thanks,
Alexandre

Hi Alexandre,

Duplicate node names aren’t allowed among siblings sharing the same parent node in a vtkDataAssembly. This error message is new in ParaView 6.2, but it’s probably pointing out a problem with duplicate names that has existed in the data assembly construction for a while.

In fact, I just checked the CONVERGE CFD dataset in the VTK test data suite (https://gitlab.kitware.com/vtk/vtk/-/tree/master/Testing/Data/CONVERGETimeSeries?ref_type=heads) in ParaView 6.2.0-RC1, 6.1.1, 6.0.1, and 5.13, and I get errors similar to yours in 6.2.0-RC1 on startup, but in the other versions I don’t get error messages until I click on a SIDEWALL node in the Information Panel, when I get

Warning: In vtkSMOutputPort.cxx, line 95
vtkSMOutputPort (0x3027424c0): GetSubsetDataInformation selector matched multiple nodes. Only first one is used.

So this new error message is reporting a situation that will lead to the warning you could see in older versions of ParaView, namely, that there are two SIDEWALL siblings under a node - they should be named uniquely. Note that in the vtkCONVERGECFD reader, we are not doing anything to ensure sibling node names are unique - we should fix that. There is a secondary issue where we shouldn’t set the block meta information NAME() key in the partitioned dataset collection the reader produces.

Since you mentioned Conduit Source, the solution for this case is to ensure SIDEWALL and STREAM_00_SIDEWALL are not repeated among sibling nodes. Is that possible to do?

Thanks for your answer. They are unique in the Conduit Source, but one is named SIDEWALL, and the other SIDEWALL@. ParaView strips the @ somewhere. We have stopped adding @ to our names, but we still have cases out there that have them.

My question was why is it an error now? But I guess the answer is simply that an error was added.

I’ll figure something out on our end, thanks.

Thanks

The ‘@’ is not a valid character for selector expressions, so when the data assembly node is added, the ‘@’ is stripped away. Maybe not the most graceful thing to do, and it results in the duplication in question.

I am thinking the new error and discarding of the node with the duplicate name, may be too severe as it changes the tree structure constructed by different data sources later on. We should warn about that case for sure, but not adding the node to the data assembly likely goes too far. What do you think, @spyridon97 ?

Yes, I think taking the first node rather than none makes sense. Especially since ParaView strips a lot of characters.