<div dir="ltr"><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">OK here is a puzzle. We have a test that is occasionally failing and I suspect it fails due to random python order of deletion of vtk objects. The relevant python code is below. It fails when unregistering a vtkObject and I suspect it is failing when invoking an callback during the unregisterinternal method see the stack trace. So maybe python has deleted the object from its maps but then it gets used in a callback for another object being deleted? Again my python foo is weak but maybe we have to unregister the anyEvent observer before the end of the script? Maybe something else? </span></font></div><div><span style="font-family:tahoma,sans-serif;font-size:13.3333px"><br></span></div><div><span style="font-family:tahoma,sans-serif;font-size:13.3333px">    @vtk.calldata_type(vtk.VTK_OBJECT)</span><br></div><div class="gmail_signature"><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">    def callbackObj(self, caller, event, calldata):</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">        self.calldata = calldata</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px"><br></span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">    def setUp(self):</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">        self.vtkObj = vtk.vtkObject()</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px"><br></span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">        self.vtkObjForCallData = vtk.vtkObject()</span></font></div><div><br></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">    def test_obj(self):</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">        self.vtkObj.AddObserver(vtk.vtkCommand.AnyEvent, self.callbackObj)</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">        self.vtkObj.InvokeEvent(vtk.vtkCommand.ModifiedEvent, self.vtkObjForCallData)</span></font></div><div><font face="Tahoma, sans-serif"><span style="font-size:13.3333px">        self.assertEqual(self.calldata, self.vtkObjForCallData)</span></font></div><div><span style="font-size:10pt;font-family:tahoma,sans-serif"><br></span></div><div><pre class="gmail-ng-binding" style="color:rgb(0,0,0);font-size:14px">0x7f98bd3e8770 : ??? [(???) ???:-1]
0x7f98bd19b778 : vtkPythonCommand::Execute(vtkObject*, unsigned long, void*) [(libvtkWrappingPython35Core-7.1.so.1) ???:-1]
0x7f98bcb9fd7e : ??? [(???) ???:-1]
0x7f98bcba000c : vtkObject::UnRegisterInternal(vtkObjectBase*, int) [(libvtkCommonCore-7.1.so.1) ???:-1]
0x7f98bd19f045 : vtkPythonUtil::RemoveObjectFromMap(_object*) [(libvtkWrappingPython35Core-7.1.so.1) ???:-1]
0x7f98bd1a5b30 : PyVTKObject_Delete [(libvtkWrappingPython35Core-7.1.so.1) ???:-1]</pre></div><div><br></div></div>
</div>