ParaView crashes when right-clicking on 3D representation of other than the first output of multi-output filter/source
Version: 5.3.0-RC1-9-g27ec7c5c
Relevant files: vtkSMRenderViewProxy.cxx, line 700
Simple description
Function vtkSMRenderViewProxy::PickBlock
crashes for filters/sources with multiple output ports, when the multi-block output being picked is not the first output of the filter/source.
Detailed description
-
The function
vtkSMRenderViewProxy::PickBlock
always callsvtkSMSelectionHelper::ConvertSelection
with port index equal to0
, even in the case of sources/filters with multiple output ports. -
When the port
0
does not correspond to a multi-block output,vtkSMSelectionHelper::ConvertSelection
returnsnullptr
. -
However, the returned proxy pointer is always used by
vtkSMRenderViewProxy::PickBlock
to construct avtkSMPropertyHelper
, which results in crash if the proxy pointer isnullptr
.
Partial solution
Let the function vtkSMRenderViewProxy::PickBlock
return zero when vtkSMSelectionHelper::ConvertSelection
returns zero, avoiding construction of invalid vtkSMPropertyHelper
. This prevents crashes, but still results in error message.
ERROR: In /local/benda/ParaView-git/VTK/Filters/Extraction/vtkConvertSelection.cxx, line 474 vtkPConvertSelection (0x8af3270): Cannot convert to type 8 unless input type matches.
ERROR: In /local/benda/ParaView-git/VTK/Common/ExecutionModel/vtkExecutive.cxx, line 784 vtkPVCompositeDataPipeline (0x91645b0): Algorithm vtkPConvertSelection(0x8af3270) returned failure for request: vtkInformation (0x84e7120) Debug: Off Modified Time: 852820 Reference Count: 1 Registered Events: (none) Request: REQUEST_DATA ALGORITHM_AFTER_FORWARD: 1 FROM_OUTPUT_PORT: 0 FORWARD_DIRECTION: 0