[vtk-developers] InvokeEvent test randomly failing quiz

Ken Martin ken.martin at kitware.com
Tue Nov 1 10:33:08 EDT 2016


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?

    @vtk.calldata_type(vtk.VTK_OBJECT)
    def callbackObj(self, caller, event, calldata):
        self.calldata = calldata

    def setUp(self):
        self.vtkObj = vtk.vtkObject()

        self.vtkObjForCallData = vtk.vtkObject()

    def test_obj(self):
        self.vtkObj.AddObserver(vtk.vtkCommand.AnyEvent, self.callbackObj)
        self.vtkObj.InvokeEvent(vtk.vtkCommand.ModifiedEvent,
self.vtkObjForCallData)
        self.assertEqual(self.calldata, self.vtkObjForCallData)

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]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20161101/a55b7ab9/attachment-0001.html>


More information about the vtk-developers mailing list