View Issue Details

IDProjectCategoryView StatusLast Update
0001454Slicer4Core: Scripting (Wrapping, Python)public2011-11-09 05:21
Reporterfinetjul Assigned Topieper  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformWindows 64bOSWindowsOS Version7
Product VersionSlicer 4.0.0 
Target VersionSlicer 4.0.0Fixed in VersionSlicer 4.0.0 
Summary0001454: Crash in Python when loading twice an empty scene
Description

Opening a scene twice crashes in vtkPythonUtil::GetPointerFromObject
when it checks if the pointer is a "vtkObservation" at line ptr->IsA(result_type)
The ptr has garbage in it, it has probably already been destructed.

Steps To Reproduce

Open slicer
Save a scene
Load the saved scene
Load the saved scene again
->crash

Additional Information

vtkPythonCore.dll!vtkPythonUtil::GetPointerFromObject(_object obj=0x0474d600, const char result_type=0x5528f774) Line 536 + 0x13 bytes C++
vtkPythonCore.dll!vtkPythonArgs::GetArgAsVTKObject(_object o=0x0474d600, const char classname=0x5528f774, bool & valid=true) Line 911 + 0xd bytes C++
vtkPythonCore.dll!vtkPythonArgs::GetArgAsVTKObject(const char classname=0x5528f774, bool & valid=true) Line 900 + 0x11 bytes C++
MRMLPythonD.dll!vtkPythonArgs::GetVTKObject<vtkObservation>(vtkObservation
& v=0x00000000, const char classname=0x5528f774) Line 108 + 0x13 bytes C++
MRMLPythonD.dll!PyvtkEventBroker_RemoveObservation(_object
self=0x06daccf0, _object args=0x0475ec90) Line 380 + 0x3a bytes C++
python26.dll!PyCFunction_Call(_object
func=0x04744788, _object arg=0x0475ec90, _object kw=0x00000000) Line 81 + 0x8 bytes C
python26.dll!call_function(_object pp_stack=0x00b467ec, int oparg=0) Line 3750 + 0x9a bytes C
python26.dll!PyEval_EvalFrameEx(_frame
f=0x0472a9b8, int throwflag=0) Line 2412 + 0x10 bytes C
python26.dll!PyEval_EvalCodeEx(PyCodeObject co=0x046d2410, _object globals=0x0472a9b8, _object locals=0x06e63300, _object args=0x00000000, int argcount=0, _object kws=0x00000000, int kwcount=0, _object defs=0x00000000, int defcount=0, _object closure=0x00000000) Line 3000 + 0x8 bytes C
python26.dll!PyEval_EvalCode(PyCodeObject co=0x046d2410, _object globals=0x06e63300, _object locals=0x06e63300) Line 546 + 0x22 bytes C
python26.dll!run_mod(_mod
mod=0x0478d080, const char filename=0x00000000, _object globals=0x06e63300, _object locals=0x06e63300, PyCompilerFlags flags=0x00000000, _arena arena=0x00000000) Line 1363 + 0x11 bytes C
python26.dll!PyRun_StringFlags(const char
str=0x046d3574, int start=257, _object globals=0x06e63300, _object locals=0x06e63300, PyCompilerFlags flags=0x00000000) Line 1314 + 0x19 bytes C
python26.dll!exec_statement(_frame
f=0x0472a800, _object prog=0x046d3574, _object globals=0x00000000, _object locals=0x1e1fe1e4) Line 4481 + 0x13 bytes C
python26.dll!PyEval_EvalFrameEx(_frame
f=0x0472a800, int throwflag=0) Line 1740 + 0x18 bytes C
python26.dll!PyEval_EvalCodeEx(PyCodeObject co=0x06e959b0, _object globals=0x0472a800, _object locals=0x00000000, _object args=0x04700564, int argcount=2, _object kws=0x00000000, int kwcount=0, _object defs=0x00000000, int defcount=0, _object closure=0x00000000) Line 3000 + 0x8 bytes C
python26.dll!function_call(_object func=0x046fc7b0, _object arg=0x04700558, _object kw=0x00000000) Line 529 + 0x31 bytes C
python26.dll!PyObject_Call(_object
func=0x046fc7b0, _object arg=0x04700558, _object kw=0x00000000) Line 2492 + 0xd bytes C
python26.dll!instancemethod_call(_object func=0x06e2e0f8, _object arg=0x0475ebb0, _object kw=0x00000000) Line 2579 + 0x10 bytes C
python26.dll!PyObject_Call(_object
func=0x06e2e0f8, _object arg=0x0475ebb0, _object kw=0x00000000) Line 2492 + 0xd bytes C
python26.dll!PyEval_CallObjectWithKeywords(_object func=0x06e2e0f8, _object arg=0x0475ebb0, _object kw=0x00000000) Line 3619 + 0xc bytes C
_tkinter.pyd!PythonCmd(void
clientData=0x06e2e0f8, Tcl_Interp interp=0x0165bb58, int argc=2, char argv=0x00b46c6c) Line 2021 + 0xe bytes C
tcl84.dll!03c509c6()
[Frames below may be incorrect and/or missing, no symbols loaded for tcl84.dll]
tcl84.dll!03c51d36()
tcl84.dll!03c7f4be()
msvcrt.dll!74bb98cd()
msvcrt.dll!74bb98da()
msvcrt.dll!74bb98da()
msvcrt.dll!74bb98da()
tcl84.dll!03c4f26f()
tcl84.dll!03cbadec()
tcl84.dll!03cba426()
msvcr90.dll!6d3436c5()
msvcr90.dll!6d3438b3()
python26.dll!PyString_FromString(const char
str=0x06aed9c0) Line 144 + 0x31 bytes C
python26.dll!LeaveNonRecursiveMutex(NRMUTEX mutex=0x06aed9c0) Line 65 + 0xe bytes C
_tkinter.pyd!Tkapp_Eval(_object
self=0x06e77800, _object args=0x0475ec30) Line 1401 + 0x24 bytes C
python26.dll!PyCFunction_Call(_object
func=0x04744788, _object arg=0x046d24e8, _object kw=0x00000001) Line 81 + 0x8 bytes C
python26.dll!call_function(_object pp_stack=0x0f38b280, int oparg=0) Line 3784 + 0xe bytes C
python26.dll!string_dealloc(_object
op=0x00b473dc) Line 544 + 0xc bytes C
tcl84.dll!03c519ff()
tcl84.dll!03cc4a89()
tcl84.dll!03cc4819()
tcl84.dll!03caebb4()
tcl84.dll!03c51d36()
tcl84.dll!03c7f4be()
tcl84.dll!03c4f26f()
tcl84.dll!03c56b56()
msvcrt.dll!74bb98cd()
msvcrt.dll!74bb98da()
msvcrt.dll!74bb98da()
msvcrt.dll!74bb98da()
tcl84.dll!03c4f26f()
tcl84.dll!03c56b56()
tcl84.dll!03cc9186()
tcl84.dll!03cc5397()
tcl84.dll!03c7eb68()
tcl84.dll!03c7e597()
tcl84.dll!03cb8507()
tcl84.dll!03c90ae9()
tcl84.dll!03caae65()
tcl84.dll!03cc4b3b()
msvcrt.dll!74bb98cd()
msvcrt.dll!74bb98da()
msvcrt.dll!74bb98da()
msvcrt.dll!74bb98da()
tcl84.dll!03c4f26f()
tcl84.dll!03c56b56()
tcl84.dll!03c90e79()
itcl32.dll!03a39f42()
itcl32.dll!03a318a8()
itcl32.dll!03a391b2()
itcl32.dll!03a393e0()
msvcrt.dll!74bb9d45()
msvcrt.dll!74bd0bbd()
msvcrt.dll!74bba53a()
msvcrt.dll!74bba5bd()
tcl84.dll!03cadf6a()
tcl84.dll!03c90c40()
tcl84.dll!03cc4f59()
tcl84.dll!03c7eb68()
KernelBase.dll!75056d2a()
msvcr90d.dll!set_flsgetvalue() Line 256 + 0xc bytes C
msvcr90d.dll!_getptd_noexit() Line 618 C
00000002()
itcl32.dll!03a391b2()
tcl84.dll!03c90a4a()
tcl84.dll!03c7e597()
tcl84.dll!03c52e24()
itcl32.dll!03a393e0()
tcl84.dll!03c90ae9()
itcl32.dll!03a33dfd()
tcl84.dll!03caaba2()
msvcrt.dll!74bb9d45()
tcl84.dll!03c4f25d()
tcl84.dll!03c569cd()
tcl84.dll!03caeedc()
tcl84.dll!03caebfd()
tcl84.dll!03c51d36()
tcl84.dll!03c52811()
tcl84.dll!03caae65()
tcl84.dll!03c4f25d()
tcl84.dll!03c569cd()
tcl84.dll!03c57b63()
tcl84.dll!03c51d36()
tcl84.dll!03caeca9()
tcl84.dll!03cae57a()
tcl84.dll!03c7e597()
tcl84.dll!03cb8507()
tcl84.dll!03c90ae9()
msvcrt.dll!74bb9d45()
tcl84.dll!03c4f25d()
tcl84.dll!03c569cd()
tcl84.dll!03caeedc()
tcl84.dll!03caebfd()
tcl84.dll!03c51d36()
tcl84.dll!03c52811()
python26.dll!PyCFunction_Call(_object func=0x047005f8, _object arg=0x03b4fc00, _object kw=0x00000002) Line 81 + 0x8 bytes C
python26.dll!call_function(_object
pp_stack=0x00b4b450, int oparg=0) Line 3775 + 0x10 bytes C
python26.dll!PyEval_EvalFrameEx(_frame f=0x06f2cb80, int throwflag=0) Line 2412 + 0x10 bytes C
python26.dll!fast_function(_object
func=0x00000000, _object pp_stack=0x00b4b50c, int n=0, int na=2, int nk=0) Line 3837 C
python26.dll!call_function(_object
pp_stack=0x00b4b50c, int oparg=0) Line 3771 + 0x12 bytes C
python26.dll!PyEval_EvalFrameEx(_frame f=0x0472ce20, int throwflag=0) Line 2412 + 0x10 bytes C
python26.dll!PyEval_EvalCodeEx(PyCodeObject
co=0x046c4f08, _object globals=0x0472ce20, _object locals=0x03b73390, _object args=0x00000000, int argcount=0, _object kws=0x00000000, int kwcount=0, _object defs=0x00000000, int defcount=0, _object closure=0x00000000) Line 3000 + 0x8 bytes C
python26.dll!PyEval_EvalCode(PyCodeObject
co=0x046c4f08, _object globals=0x03b73390, _object locals=0x03b73390) Line 546 + 0x22 bytes C
python26.dll!run_mod(_mod mod=0x0478b040, const char filename=0x00000000, _object globals=0x03b73390, _object locals=0x03b73390, PyCompilerFlags flags=0x00000000, _arena arena=0x00000000) Line 1363 + 0x11 bytes C
python26.dll!PyRun_StringFlags(const char str=0x260ff308, int start=257, _object globals=0x03b73390, _object locals=0x03b73390, PyCompilerFlags flags=0x00000000) Line 1314 + 0x19 bytes C
PythonQt.dll!PythonQt::evalScript(_object object=0x03b6da10, const QString & script={...}, int start=257) Line 668 + 0x4c bytes C++
PythonQt.dll!PythonQtObjectPtr::evalScript(const QString & script={...}, int start=257) Line 65 + 0x1e bytes C++
CTKScriptingPythonCore.dll!ctkAbstractPythonManager::executeString(const QString & code={...}, ctkAbstractPythonManager::ExecuteStringMode mode=FileInput) Line 173 + 0x17 bytes C++
qSlicerBaseQTGUI.dll!qSlicerPythonManager::eventBrokerScriptHandler(const char
script=0x259c2a80, void clientData=0x065500c0) Line 115 + 0x15 bytes C++
MRML.dll!vtkEventBroker::InvokeObservation(vtkObservation
observation=0x259c2968, void callData=0x00000000) Line 853 + 0x28 bytes C++
MRML.dll!vtkEventBroker::ProcessEvent(vtkObservation
observation=0x259c2968, vtkObject caller=0x17563560, unsigned long eid=33, void callData=0x00000000) Line 715 + 0x10 bytes C++
MRML.dll!vtkEventBroker::Callback(vtkObject caller=0x17563560, unsigned long eid=33, void clientData=0x259c2968, void callData=0x00000000) Line 937 C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject
caller=0x17563560, unsigned long event=33, void callData=0x00000000) Line 42 + 0x1d bytes C++
vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=33, void
callData=0x00000000, vtkObject self=0x17563560) Line 602 + 0x1f bytes C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=33, void
callData=0x00000000) Line 770 + 0x17 bytes C++
vtkCommon.dll!vtkObject::Modified() Line 837 C++
MRML.dll!vtkMRMLNode::InvokePendingModifiedEvent() Line 362 + 0xb bytes C++
MRML.dll!vtkMRMLNode::CopyWithSceneWithSingleModifiedEvent(vtkMRMLNode node=0x175b2fa0) Line 390 + 0x12 bytes C++
MRML.dll!vtkMRMLScene::AddNodeNoNotify(vtkMRMLNode
n=0x175b2fa0) Line 1263 C++
MRML.dll!vtkMRMLScene::AddNode(vtkMRMLNode n=0x175b2fa0) Line 1341 + 0xc bytes C++
MRML.dll!vtkMRMLScene::Import() Line 883 C++
MRML.dll!vtkMRMLScene::Connect() Line 828 + 0x8 bytes C++
qSlicerBaseQTCore.dll!qSlicerSceneIO::load(const QMap<QString,QVariant> & properties={...}) Line 65 + 0x12 bytes C++
qSlicerBaseQTCore.dll!qSlicerCoreIOManager::loadNodes(const qSlicerIO::IOFileType & fileType=SceneFile, const QMap<QString,QVariant> & parameters={...}, vtkCollection
loadedNodes=0x00000000) Line 253 + 0x19 bytes C++
qSlicerBaseQTGUI.dll!qSlicerIOManager::loadNodes(const qSlicerIO::IOFileType & fileType=SceneFile, const QMap<QString,QVariant> & parameters={...}, vtkCollection loadedNodes=0x00000000) Line 277 + 0x17 bytes C++
qSlicerBaseQTCore.dll!qSlicerCoreIOManager::loadNodes(const qSlicerIO::IOFileType & fileType=SceneFile, const QMap<QString,QVariant> & parameters={...}, vtkCollection
loadedNodes=0x00000000) Line 234 + 0x1f bytes C++
qSlicerBaseQTGUI.dll!qSlicerIOManager::loadNodes(const qSlicerIO::IOFileType & fileType=SceneFile, const QMap<QString,QVariant> & parameters={...}, vtkCollection loadedNodes=0x00000000) Line 277 + 0x17 bytes C++
qSlicerBaseQTGUI.dll!qSlicerStandardFileDialog::exec(const QMap<QString,QVariant> & ioProperties={...}) Line 213 + 0x32 bytes C++
qSlicerBaseQTGUI.dll!qSlicerIOManager::openDialog(qSlicerIO::IOFileType fileType=SceneFile, qSlicerFileDialog::IOAction action=Read, const QMap<QString,QVariant> & properties={...}) Line 192 + 0x13 bytes C++
qSlicerBaseQTGUI.dll!qSlicerIOManager::openLoadSceneDialog() Line 163 + 0x10 bytes C++
qSlicerQT.dll!qSlicerMainWindowCore::onFileLoadSceneActionTriggered() Line 109 + 0x2a bytes C++
qSlicerQT.dll!qSlicerMainWindowCore::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=2, void
_a=0x00b4c778) Line 120 + 0x8 bytes C++
QtCored4.dll!QMetaObject::metacall(QObject
object=0x17560ca0, QMetaObject::Call cl=InvokeMetaMethod, int idx=6, void argv=0x00b4c778) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject sender=0x17362f28, const QMetaObject m=0x65d11798, int local_signal_index=1, void argv=0x00b4c778) Line 3272 + 0x27 bytes C++
QtGuid4.dll!QAction::triggered(bool _t1=false) Line 263 + 0x15 bytes C++
QtGuid4.dll!QAction::activate(QAction::ActionEvent event=Trigger) Line 1258 C++
QtGuid4.dll!QMenuPrivate::activateCausedStack(const QList<QPointer<QWidget> > & causedStack={...}, QAction action=0x17362f28, QAction::ActionEvent action_e=Trigger, bool self=true) Line 995 C++
QtGuid4.dll!QMenuPrivate::activateAction(QAction
action=0x17362f28, QAction::ActionEvent action_e=Trigger, bool self=true) Line 1088 C++
QtGuid4.dll!QMenu::mouseReleaseEvent(QMouseEvent e=0x00b4d1c8) Line 2302 C++
QtGuid4.dll!QWidget::event(QEvent
event=0x00b4d1c8) Line 8188 C++
QtGuid4.dll!QMenu::event(QEvent e=0x00b4d1c8) Line 2411 C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject
receiver=0x174f9a98, QEvent e=0x00b4d1c8) Line 4396 + 0x11 bytes C++
QtGuid4.dll!QApplication::notify(QObject
receiver=0x174f9a98, QEvent e=0x00b4d1c8) Line 3959 + 0x2f bytes C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject
receiver=0x174f9a98, QEvent event=0x00b4d1c8) Line 732 + 0x15 bytes C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject
receiver=0x174f9a98, QEvent event=0x00b4d1c8) Line 218 + 0x38 bytes C++
QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget
receiver=0x174f9a98, QMouseEvent event=0x00b4d1c8, QWidget alienWidget=0x00000000, QWidget nativeWidget=0x174f9a98, QWidget * buttonDown=0x65d1306c, QPointer<QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3056 + 0xe bytes C++
QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3230 + 0x2a bytes C++
QtGuid4.dll!QtWndProc(HWND
hwnd=0x00ae311e, unsigned int message=514, unsigned int wParam=0, long lParam=1310740) Line 1657 + 0xc bytes C++
user32.dll!766162fa()
user32.dll!76616d3a()
user32.dll!76616ce9()
user32.dll!766177c4()
user32.dll!7661788a()
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 806 C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 1170 + 0x15 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 150 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags={...}) Line 201 + 0x2d bytes C++
QtCored4.dll!QCoreApplication::exec() Line 1009 + 0x15 bytes C++
QtGuid4.dll!QApplication::exec() Line 3673 C++
SlicerQT-real.exe!main(int argc=1, char
* argv=0x032fc750) Line 378 + 0x8 bytes C++
SlicerQT-real.exe!__tmainCRTStartup() Line 582 + 0x19 bytes C
SlicerQT-real.exe!mainCRTStartup() Line 399 C

TagsNo tags attached.

Relationships

duplicate of 0001438 closedpieper hardening the handling of scenes in Slicer 

Activities

pieper

pieper

2011-11-09 03:38

administrator   ~0003285

I believe this was fixed with r18637

finetjul

finetjul

2011-11-09 05:20

administrator   ~0003287

It works (tested with r18647)

Issue History

Date Modified Username Field Change
2011-09-25 12:21 finetjul New Issue
2011-09-25 12:21 finetjul Status new => assigned
2011-09-25 12:21 finetjul Assigned To => pieper
2011-09-26 10:47 finetjul Relationship added duplicate of 0001438
2011-11-09 03:38 pieper Note Added: 0003285
2011-11-09 03:38 pieper Status assigned => resolved
2011-11-09 03:38 pieper Resolution open => unable to reproduce
2011-11-09 05:20 finetjul Note Added: 0003287
2011-11-09 05:20 finetjul Status resolved => closed
2011-11-09 05:20 finetjul Fixed in Version => Slicer 4.0 RSNA
2011-11-09 05:21 finetjul Resolution unable to reproduce => fixed