View Issue Details

IDProjectCategoryView StatusLast Update
0002513Slicer4public2014-03-06 05:19
Reporterjcfr Assigned Tofinetjul  
PriorityhighSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.3.0Fixed in VersionSlicer 4.3.0 
Summary0002513: Tutorial 11 - Brain Atlas
Description

See http://www.na-mic.org/Wiki/index.php/RSNA2012_Planning

TagsNo tags attached.

Relationships

related to 0002512 closedpieper Tutorial 10 - Image-guided prostate interventions 
parent of 0002538 closedfinetjul slice pipeline causing a crash when restoring scene views with models + slices visible in 3d 
related to 0002514 closednicole Tutorial 13 - Abdominal Atlas 

Activities

nicole

nicole

2012-09-18 11:30

administrator   ~0006128

May need to do some first pass optimisation, takes minutes to load and more minutes to restore a scene view.

nicole

nicole

2012-10-09 13:26

administrator   ~0006482

Some cross platform testing shows that the SPL linux debug builds are incredibly slow (gave up after 90 minutes loading the scene), while release builds will load the scene in about a minue, but crash on scene view restore.
Next up trying to save a new version of the mrb to get rid of extra parameter nodes etc. and find out why scene view restores are crashing.

nicole

nicole

2012-10-23 14:45

administrator   ~0006711

Test is passing on 4.2 release candidate.
Need to create a new mrb with fixed color node id for the seg.nrrd file, and regenerate scene view thumbnails.

nicole

nicole

2012-10-23 15:38

administrator   ~0006712

Uploaded new mrb, point atlas test file to it via svn 21234

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision & revision=21234
http://slicer.kitware.com/midas3/download?items=9925

Testing this on my linux debug build, it's loading a lot faster (created it with the 4.2 release build), maybe the translation between old nodes and new might have been slowing things down a bit?

Marianna and Ron are meeting tomorrow (Oct 24), will get an update on the the status of the new mrb after that, and then hopefully upload to PubDB.

nicole

nicole

2012-10-26 17:11

administrator   ~0006825

Uploaded new mrb with the proper model hierarchy, scene view images, and adjusted slice FOV and visibility
File name: 2012-10-26-BrainAtlas.mrb
URL: http://slicer.kitware.com/midas3/download?items=10083

Updated the AtlasTests to point to it via svn 21262 [1] (also fixed test to deal with model hierarchy nodes that don't have display nodes)

Linux64 Slicer-4.2.0-rc1-2012-10-25-linux-amd64 okay

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21262

nicole

nicole

2012-10-30 10:42

administrator   ~0006915

Marianna tested the previous MRB, found that the color table was missing two entries, and fixed the scene view camera angles/slice visibilities.
http://slicer.kitware.com/midas3/download?items=10397
BrainAtlas-2012-10-29.mrb

Updated the AtlasTests to point to it via svn 21286.
http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=21286

nicole

nicole

2012-10-30 14:49

administrator   ~0006945

Marianna says:

  1. we desperately need the face culling turned OFF! for model 1020!
jcfr

jcfr

2012-10-30 15:52

administrator   ~0006950

Nicole> Is is something you can address or you need the help of others ?

nicole

nicole

2012-10-30 15:53

administrator   ~0006951

JC: I'm doing it now, on the mrml file editing level. :)

jcfr

jcfr

2012-10-31 11:37

administrator   ~0006985

Since MRB and sceneview are not required to run the tutorial, these issues are considered resolved.

Nicole, make sure to provide archive with MRML file(s) and data in a archive file that could be used after being extracted.

Thanks

pieper

pieper

2012-11-07 07:58

administrator   ~0007098

The current brain atlas test crashes during a scene view restore.

The crash occurs here:

https://github.com/Slicer/Slicer/blob/master/Libs/MRML/Widgets/qMRMLSortFilterProxyModel.cxx#L172

To recreate this, simply enter the Modules->Testing->TestCases->Atlas Tests module and press the Brain Atlas button. The test takes a long time to run, but reproducibly crashes at this point on windows, mac, and linux for my builds.

qMRMLWidgets.dll!qMRMLSortFilterProxyModel::filterAcceptsRow(int source_row=2, const QModelIndex & source_parent={...}) Line 172 + 0xd bytes C++
qMRMLWidgets.dll!qMRMLSortFilterHierarchyProxyModel::filterAcceptsRow(int source_row=2, const QModelIndex & source_parent={...}) Line 65 + 0x16 bytes C++
QtGuid4.dll!QSortFilterProxyModelPrivate::create_mapping(const QModelIndex & source_parent={...}) Line 327 + 0x1f bytes C++
QtGuid4.dll!QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeInserted(const QModelIndex & source_parent={...}, int start=4, int end=4) Line 1273 C++
QtGuid4.dll!QSortFilterProxyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=11, void _a=0x0000000000aa7b10) Line 134 + 0x3f bytes C++
qMRMLWidgets.dll!qMRMLSortFilterProxyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=36, void _a=0x0000000000aa7b10) Line 95 + 0x25 bytes C++
qMRMLWidgets.dll!qMRMLSortFilterHierarchyProxyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=36, void _a=0x0000000000aa7b10) Line 64 + 0x18 bytes C++
QtCored4.dll!QMetaObject::metacall(QObject object=0x0000000050dde130, QMetaObject::Call cl=InvokeMetaMethod, int idx=36, void argv=0x0000000000aa7b10) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject
sender=0x0000000050739fa0, const QMetaObject m=0x00000000673ff8e8, int local_signal_index=4, void argv=0x0000000000aa7b10) Line 3278 + 0x49 bytes C++
QtCored4.dll!QAbstractItemModel::rowsAboutToBeInserted(const QModelIndex & _t1={...}, int _t2=4, int _t3=4) Line 175 C++
QtCored4.dll!QAbstractItemModel::beginInsertRows(const QModelIndex & parent={...}, int first=4, int last=4) Line 2396 C++
QtGuid4.dll!QStandardItemModelPrivate::rowsAboutToBeInserted(QStandardItem
parent=0x0000000060c12b70, int start=4, int end=4) Line 513 + 0x1a bytes C++
QtGuid4.dll!QStandardItemPrivate::insertRows(int row=4, int count=1, const QList<QStandardItem > & items={...}) Line 405 C++
QtGuid4.dll!QStandardItem::insertRow(int row=4, const QList<QStandardItem
> & items={...}) Line 1458 C++
qMRMLWidgets.dll!qMRMLSceneModelPrivate::reparentItems(QList<QStandardItem > & children={...}, int newIndex=5, QStandardItem newParentItem=0x0000000060c12b70) Line 252 C++
qMRMLWidgets.dll!qMRMLSceneModel::updateItemFromNode(QStandardItem item=0x0000000060c14920, vtkMRMLNode node=0x0000000015744060, int column=0) Line 820 + 0x19 bytes C++
qMRMLWidgets.dll!qMRMLSceneModel::updateNodeItems(vtkMRMLNode node=0x0000000015744060, const QString & nodeUID={...}) Line 1278 C++
qMRMLWidgets.dll!qMRMLSceneModel::onMRMLNodeModified(vtkObject
node=0x0000000015744060) Line 1239 + 0x44 bytes C++
qMRMLWidgets.dll!qMRMLSceneModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=12, void _a=0x0000000000aa8258) Line 133 + 0x16 bytes C++
qMRMLWidgets.dll!qMRMLSceneHierarchyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=38, void _a=0x0000000000aa8258) Line 67 + 0x18 bytes C++
qMRMLWidgets.dll!qMRMLSceneDisplayableModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=38, void _a=0x0000000000aa8258) Line 69 + 0x18 bytes C++
qMRMLWidgets.dll!qMRMLSceneModelHierarchyModel::qt_metacall(QMetaObject::Call _c=InvokeMetaMethod, int _id=38, void _a=0x0000000000aa8258) Line 64 + 0x18 bytes C++
QtCored4.dll!QMetaObject::metacall(QObject object=0x0000000050739fa0, QMetaObject::Call cl=InvokeMetaMethod, int idx=38, void argv=0x0000000000aa8258) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject
sender=0x0000000057311d60, const QMetaObject m=0x000007fee0dbc980, int local_signal_index=1, void argv=0x0000000000aa8258) Line 3278 + 0x49 bytes C++
CTKVisualizationVTKCore.dll!ctkVTKConnection::emitExecute(vtkObject
_t1=0x0000000015744060, void _t2=0x0000000000000000, unsigned long _t3=16000, void _t4=0x00000000570a3500) Line 107 C++
CTKVisualizationVTKCore.dll!ctkVTKConnectionPrivate::execute(vtkObject vtk_obj=0x0000000015744060, unsigned long vtk_event=16000, void client_data=0x00000000570a3500, void call_data=0x0000000000000000) Line 380 C++
CTKVisualizationVTKCore.dll!ctkVTKConnectionPrivate::DoCallback(vtkObject
vtk_obj=0x0000000015744060, unsigned long event=16000, void client_data=0x00000000570a3500, void call_data=0x0000000000000000) Line 339 C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject caller=0x0000000015744060, unsigned long event=16000, void callData=0x0000000000000000) Line 43 C++
MRMLCore.dll!vtkEventBroker::InvokeObservation(vtkObservation observation=0x0000000057245810, void callData=0x0000000000000000) Line 857 C++
MRMLCore.dll!vtkEventBroker::ProcessEvent(vtkObservation observation=0x0000000057245810, vtkObject caller=0x0000000015744060, unsigned long eid=16000, void callData=0x0000000000000000) Line 707 + 0x1d bytes C++
MRMLCore.dll!vtkEventBroker::Callback(vtkObject
caller=0x0000000015744060, unsigned long eid=16000, void clientData=0x0000000057245810, void callData=0x0000000000000000) Line 929 C++
vtkCommon.dll!vtkCallbackCommand::Execute(vtkObject caller=0x0000000015744060, unsigned long event=16000, void callData=0x0000000000000000) Line 43 C++
vtkCommon.dll!vtkSubjectHelper::InvokeEvent(unsigned long event=16000, void callData=0x0000000000000000, vtkObject self=0x0000000015744060) Line 605 C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=16000, void callData=0x0000000000000000) Line 770 + 0x1c bytes C++
vtkCommon.dll!vtkObject::InvokeEvent(unsigned long event=16000) Line 214 + 0x38 bytes C++
MRMLCore.dll!vtkMRMLHierarchyNode::InvokeHierarchyModifiedEvent(vtkMRMLNode
node=0x0000000000000000) Line 800 C++
MRMLCore.dll!vtkMRMLHierarchyNode::Copy(vtkMRMLNode anode=0x000000001a91cb20) Line 185 C++
MRMLCore.dll!vtkMRMLDisplayableHierarchyNode::Copy(vtkMRMLNode
anode=0x000000001a91cb20) Line 130 C++
MRMLCore.dll!vtkMRMLModelHierarchyNode::Copy(vtkMRMLNode anode=0x000000001a91cb20) Line 92 C++
MRMLCore.dll!vtkMRMLNode::CopyWithSingleModifiedEvent(vtkMRMLNode
node=0x000000001a91cb20) Line 371 C++
MRMLCore.dll!vtkMRMLSceneViewNode::RestoreScene() Line 471 C++
MRMLCorePythonD.dll!PyvtkMRMLSceneViewNode_RestoreScene(_object self=0x0000000010a8e278, _object args=0x0000000003858048) Line 363 C++
python26.dll!PyCFunction_Call(_object func=0x0000000000000000, _object arg=0x00000000033c7040, _object kw=0x0000000010a7c648) Line 81 + 0x8 bytes C
python26.dll!call_function(_object
pp_stack=0x0000000000000001, int oparg=131) Line 3750 + 0xaf bytes C
python26.dll!PyEval_EvalFrameEx(_frame f=0x00000000108a60b8, int throwflag=277504184) Line 2416 C
python26.dll!fast_function(_object
func=0x0000000000000003, _object pp_stack=0x00000000109a8da0, int n=116287640, int na=504067066, int nk=0) Line 3837 C
python26.dll!call_function(_object
pp_stack=0x0000000000000001, int oparg=131) Line 3771 + 0x16 bytes C
python26.dll!PyEval_EvalFrameEx(_frame f=0x00000000103b70b8, int throwflag=272330936) Line 2416 C
python26.dll!fast_function(_object
func=0x0000000000000001, _object pp_stack=0x00000000109a8da0, int n=116287416, int na=504067066, int nk=0) Line 3837 C
python26.dll!call_function(_object
pp_stack=0x0000000000000001, int oparg=131) Line 3771 + 0x16 bytes C
python26.dll!PyEval_EvalFrameEx(_frame f=0x0000000010208878, int throwflag=270567544) Line 2416 C
python26.dll!fast_function(_object
func=0x0000000000000001, _object pp_stack=0x00000000109a8da0, int n=116287080, int na=504067066, int nk=0) Line 3837 C
python26.dll!call_function(_object
pp_stack=0x0000000000000001, int oparg=131) Line 3771 + 0x16 bytes C
python26.dll!PyEval_EvalFrameEx(_frame f=0x0000000010a08938, int throwflag=0) Line 2416 C
python26.dll!PyEval_EvalCodeEx(PyCodeObject
co=0x0000000000000000, _object globals=0x0000000000000001, _object locals=0x0000000000000000, _object args=0x0000000000000000, int argcount=1, _object kws=0x0000000000000000, int kwcount=0, _object defs=0x0000000000000000, int defcount=0, _object closure=0x0000000000000000) Line 3000 + 0xf bytes C
python26.dll!function_call(_object
func=0x0000000000000060, _object arg=0x00000000109a8898, _object kw=0x0000000000aa9fc0) Line 529 + 0x3c bytes C
python26.dll!PyObject_Call(_object func=0x00000000109a8898, _object arg=0x0000000006ee6208, _object kw=0x0000000000000000) Line 2493 C
python26.dll!instancemethod_call(_object
func=0x00000000109a0900, _object arg=0x0000000003858048, _object kw=0x0000000000000000) Line 2580 C
python26.dll!PyObject_Call(_object func=0x0000000003858048, _object arg=0x0000000000aaa968, _object kw=0x00000000109a0900) Line 2493 C
python26.dll!PyEval_CallObjectWithKeywords(_object
func=0x00000000156a01f0, _object arg=0x0000000000000001, _object kw=0x0000000000000001) Line 3620 C
PythonQt.dll!PythonQtSignalTarget::call(_object callable=0x00000000109a0900, const PythonQtMethodInfo methodInfos=0x00000000156a01f0, void arguments=0x0000000000aa9e40, bool skipFirstArgumentOfMethodInfo=false) Line 124 + 0x13 bytes C++
PythonQt.dll!PythonQtSignalTarget::call(void arguments=0x0000000000aa9e40) Line 55 + 0x2e bytes C++
PythonQt.dll!PythonQtSignalReceiver::qt_metacall(QMetaObject::Call c=InvokeMetaMethod, int id=4, void arguments=0x0000000000aa9e40) Line 261 C++
QtCored4.dll!QMetaObject::metacall(QObject object=0x0000000015a3ecc0, QMetaObject::Call cl=InvokeMetaMethod, int idx=4, void argv=0x0000000000aa9e40) Line 238 C++
QtCored4.dll!QMetaObject::activate(QObject
sender=0x0000000015a3f040, const QMetaObject m=0x0000000065dddf58, int local_signal_index=2, void argv=0x0000000000aa9e40) Line 3278 + 0x49 bytes C++
QtGuid4.dll!QAbstractButton::clicked(bool _t1=false) Line 205 C++
QtGuid4.dll!QAbstractButtonPrivate::emitClicked() Line 548 C++
QtGuid4.dll!QAbstractButtonPrivate::click() Line 539 + 0xa bytes C++
QtGuid4.dll!QAbstractButton::mouseReleaseEvent(QMouseEvent
e=0x0000000000aab018) Line 1122 C++
PythonQt.dll!PythonQtShell_QPushButton::mouseReleaseEvent(QMouseEvent e=0x0000000000aab018) Line 6236 C++
QtGuid4.dll!QWidget::event(QEvent
event=0x0000000000aab018) Line 8260 C++
QtGuid4.dll!QAbstractButton::event(QEvent e=0x0000000000aab018) Line 1081 C++
QtGuid4.dll!QPushButton::event(QEvent
e=0x0000000000aab018) Line 684 C++
PythonQt.dll!PythonQtShell_QPushButton::event(QEvent e=0x0000000000aab018) Line 5864 C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject
receiver=0x0000000015a3f040, QEvent e=0x0000000000aab018) Line 4462 + 0x15 bytes C++
QtGuid4.dll!QApplication::notify(QObject
receiver=0x0000000015a3f040, QEvent e=0x0000000000aab018) Line 4023 + 0x51 bytes C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject
receiver=0x0000000015a3f040, QEvent event=0x0000000000aab018) Line 731 + 0x26 bytes C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject
receiver=0x0000000015a3f040, QEvent event=0x0000000000aab018) Line 218 + 0x4c bytes C++
QtGuid4.dll!QApplicationPrivate::sendMouseEvent(QWidget
receiver=0x0000000015a3f040, QMouseEvent event=0x0000000000aab018, QWidget alienWidget=0x0000000015a3f040, QWidget nativeWidget=0x000000000ede2f60, QWidget buttonDown=0x00000000660ea560, QPointer<QWidget> & lastMouseReceiver={...}, bool spontaneous=true) Line 3120 + 0x16 bytes C++
QtGuid4.dll!QETWidget::translateMouseEvent(const tagMSG & msg={...}) Line 3321 + 0x3f bytes C++
QtGuid4.dll!QtWndProc(HWND__
hwnd=0x00000000002a02ca, unsigned int message=514, unsigned int64 wParam=0, int64 lParam=16908537) Line 1659 + 0x15 bytes C++
user32.dll!00000000777d9bd1()
[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
user32.dll!00000000777d98da()
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags=0x0000000000aaf2c0) Line 813 C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>
flags=0x0000000000aaf30c) Line 1170 + 0x27 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags=0x0000000000aaf378) Line 150 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag>
flags=0x0000000000aaf400) Line 201 + 0x53 bytes C++
QtCored4.dll!QCoreApplication::exec() Line 1008 + 0x23 bytes C++
QtGuid4.dll!QApplication::exec() Line 3737 C++
SlicerApp-real.exe!`anonymous namespace'::SlicerAppMain(int argc=1, char argv=0x000000000469e560) Line 183 + 0x6 bytes C++
SlicerApp-real.exe!WinMain(HINSTANCE * hInstance=0x000000013f5b0000, HINSTANCE hPrevInstance=0x0000000000000000, char lpCmdLine=0x0000000000c46b38, int nShowCmd=1) Line 202 + 0xe bytes C++
SlicerApp-real.exe!__tmainCRTStartup() Line 574 + 0x42 bytes C
SlicerApp-real.exe!WinMainCRTStartup() Line 399 C
kernel32.dll!000000007755652d()
ntdll.dll!00000000778ec521()

nicole

nicole

2012-11-12 09:54

administrator   ~0007164

There are a lot of model hierarchies in the most recent brain atlas mrml scene, so iterating over them all (with the delayed display to make the scene render) takes a while.
For the atlas testing, some solutions to get to the crash earlier:

  • provide a download only option, maybe add the mrbs to the Sample Data module, though that would require updating links in two places
  • reorder the atlas testing python file to do the scene view restores first (didn't do that initially since they used to take so much longer).
  • in the atlas testing python file provide a "quick test" mode that will take a percentage of the model hierarchy and/or scene view nodes and just test them. Could be a manual max number of nodes setting, or a percentage, taking just the first nodes in the list (check if I can enforce always getting the same set of nodes as want to ensure reproducibility).

I'm working on a new version of the mrb/zip file now, will update with crash status (downloading from
http://www.mrigt.com/temp/2012-10-29-BrainAtlas.mrb.bin
is taking half an hour)

jcfr

jcfr

2012-11-12 11:32

administrator   ~0007165

Few questions:

1) What is http://www.mrigt.com ? What about hosting the associated data on midas ?

2) Application test that are not addressing performance related issue should run faster. Creating light-weight mrb should probably be done. Let me know what you think.

nicole

nicole

2012-11-12 11:41

administrator   ~0007166

  1. don't worry about it, I just put the link there to remind myself which was the latest version we're working on before it gets uploaded to MIDAS

  2. The brain atlas is specifically testing what happens with a large data set.

nicole

nicole

2012-11-12 14:18

administrator   ~0007172

svn 21345[1] reduces some warning messages that were coming up as I was tweaking the mrb.
[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=21345

nicole

nicole

2012-11-12 15:13

administrator   ~0007173

svn 21346[1] uses the new brain atlas mrb file as updated by Marianna and cleaned up by me [2](removed model nodes with missing files, fixed file paths that had leftover tmp directories in them). Still to do: remove extraneous camera a view nodes so that restoring scene views go back to the expected camera angle.

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=21346
[2] Uploaded to Nightly path, will put the final version in the 4.2 path as well http://slicer.kitware.com/midas3/download?items=10937

pieper

pieper

2012-11-14 06:19

administrator   ~0007207

As of revision 21354 the only crash I get now is on exit:

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=21354

The issue now appears to be bad memory management in the mrml scene's ReferencingNodes (vector of mrml node pointers) when used in a scene view.

This is now reproducible with the RSNA2012ProstateDemo self test related to issue 0002512.

jcfr

jcfr

2012-11-14 06:43

administrator   ~0007211

Considering that Nicole (and Alex ?) are in charge of the SceneViews module, should issue 0002512 and 0002513 be assigned to them ?

Or, in addition to reporting more details, are you also working on fixing the underlying issue ? :)

Thanks

pieper

pieper

2012-11-14 06:53

administrator   ~0007215

I aspire to fixing the underlying issue :)

pieper

pieper

2012-11-14 13:31

administrator   ~0007225

This fixes the crash for me:

https://github.com/pieper/Slicer/commit/6169a5de01251bff5d972c4397ca5aca405f9bc0

see the commit notes for details.

Now there are leaks on exit, but I do not believe they are related to this commit, would probably have been visible before if it hadn't been for the crash.

I am running an Experimental now and I expect that the leaks will still be present in this test and in the brain atlas test, but that the crash will be gone. If so, I plan to check in this fix tomorrow.

jcfr

jcfr

2012-11-14 13:51

administrator   ~0007226

Good catch :)

That said, I would prefer we don't commit this, instead the vector ReferencingNodes should be a vector of vtkSmartPointer&lt;vtkMRMLNode>. Let me know what you think.

pieper

pieper

2012-11-14 14:49

administrator   ~0007229

Will look into the idea of using smart pointers before committing.

pieper

pieper

2012-11-15 08:59

administrator   ~0007250

Here's a revised (smarter) version with smart pointers:

https://github.com/pieper/Slicer/commit/618a54afba017005b9fe345dd309788008ef90cf

Thanks for the suggestion Jc!

pieper

pieper

2012-11-15 12:54

administrator   ~0007252

The smart pointer approach is committed in revision 21422. I confirmed that the atlas and prostate tests pass (no crash or leaks).

pieper

pieper

2012-11-17 10:10

administrator   ~0007303

The brain atlas still causes the crash with the stack trace shown below. The patch in revision 21354 fixes the crash, but was not included in the 4.2.2 release.

http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=21354

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libqMRMLWidgets.dylib 0x000000010051e3de qMRMLSortFilterProxyModel::filterAcceptsRow(int, QModelIndex const&) const + 270
1 libqMRMLWidgets.dylib 0x000000010051c47f qMRMLSortFilterHierarchyProxyModel::filterAcceptsRow(int, QModelIndex const&) const + 31
2 QtGui 0x0000000106f78aec QSortFilterProxyModelPrivate::create_mapping(QModelIndex const&) const + 252
3 QtGui 0x0000000106f7e96d QSortFilterProxyModel::qt_metacall(QMetaObject::Call, int, void) + 893
4 libqMRMLWidgets.dylib 0x00000001005431ac qMRMLSortFilterProxyModel::qt_metacall(QMetaObject::Call, int, void
) + 44
5 QtCore 0x000000010769e9d6 QMetaObject::activate(QObject, QMetaObject const, int, void) + 710
6 QtCore 0x00000001077c912f QAbstractItemModel::rowsAboutToBeInserted(QModelIndex const&, int, int) + 63
7 QtCore 0x00000001077768f2 QAbstractItemModel::beginInsertRows(QModelIndex const&, int, int) + 130
8 QtGui 0x0000000106f85c75 QStandardItemModelPrivate::rowsAboutToBeInserted(QStandardItem, int, int) + 69
9 QtGui 0x0000000106f87649 QStandardItemPrivate::insertRows(int, int, QList<QStandardItem
> const&) + 121
10 libqMRMLWidgets.dylib 0x00000001004fc83b qMRMLSceneModelPrivate::reparentItems(QList<QStandardItem>&, int, QStandardItem) + 395
11 libqMRMLWidgets.dylib 0x00000001004fce31 qMRMLSceneModel::updateItemFromNode(QStandardItem, vtkMRMLNode, int) + 593
12 libqMRMLWidgets.dylib 0x00000001004f69fe qMRMLSceneModel::updateNodeItems(vtkMRMLNode, QString const&) + 238
13 libqMRMLWidgets.dylib 0x00000001004f6e2c qMRMLSceneModel::onMRMLNodeModified(vtkObject
) + 92
14 libqMRMLWidgets.dylib 0x0000000100540e60 qMRMLSceneModel::qt_metacall(QMetaObject::Call, int, void
) + 688
15 libqMRMLWidgets.dylib 0x0000000100541725 qMRMLSceneHierarchyModel::qt_metacall(QMetaObject::Call, int, void) + 37
16 libqMRMLWidgets.dylib 0x0000000100541885 qMRMLSceneDisplayableModel::qt_metacall(QMetaObject::Call, int, void
) + 37
17 QtCore 0x000000010769e9d6 QMetaObject::activate(QObject, QMetaObject const, int, void*) + 710
18 libCTKVisualizationVTKCore.0.1.dylib 0x00000001032cbed5 ctkVTKConnection::emitExecute(vtkObject
, void, unsigned long, void) + 85
19 libCTKVisualizationVTKCore.0.1.dylib 0x00000001032bd9f8 ctkVTKConnectionPrivate::execute(vtkObject, unsigned long, void, void) + 488
20 libvtkCommon.5.10.dylib 0x000000010b0c68f1 vtkCallbackCommand::Execute(vtkObject
, unsigned long, void) + 33
21 libMRMLCore.dylib 0x000000010548aba3 vtkEventBroker::InvokeObservation(vtkObservation
, void) + 307
22 libMRMLCore.dylib 0x000000010548b11f vtkEventBroker::ProcessEvent(vtkObservation
, vtkObject, unsigned long, void) + 767
23 libvtkCommon.5.10.dylib 0x000000010b0c68f1 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 33
24 libvtkCommon.5.10.dylib 0x000000010b0afbe7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
25 libMRMLCore.dylib 0x00000001054e6d31 vtkMRMLDisplayableHierarchyNode::Copy(vtkMRMLNode) + 49
26 libMRMLCore.dylib 0x00000001054eb391 vtkMRMLModelHierarchyNode::Copy(vtkMRMLNode
) + 49
27 libMRMLCore.dylib 0x0000000105566547 vtkMRMLSceneViewNode::RestoreScene() + 2823
28 libMRMLCorePythonD.dylib 0x0000000116761b40 PyvtkMRMLSceneViewNode_RestoreScene(_object, _object) + 80
29 libpython2.6.dylib 0x00000001052b133e PyEval_EvalFrameEx + 25982
30 libpython2.6.dylib 0x00000001052b10f7 PyEval_EvalFrameEx + 25399
31 libpython2.6.dylib 0x00000001052b10f7 PyEval_EvalFrameEx + 25399
32 libpython2.6.dylib 0x00000001052b10f7 PyEval_EvalFrameEx + 25399
33 libpython2.6.dylib 0x00000001052b1e49 PyEval_EvalCodeEx + 2281
34 libpython2.6.dylib 0x0000000105234685 function_call + 165
35 libpython2.6.dylib 0x00000001052049c2 PyObject_Call + 98
36 libpython2.6.dylib 0x0000000105216f5b instancemethod_call + 363
37 libpython2.6.dylib 0x00000001052049c2 PyObject_Call + 98
38 libpython2.6.dylib 0x00000001052a9c47 PyEval_CallObjectWithKeywords + 87
39 libPythonQt.dylib 0x00000001036ca40a PythonQtSignalTarget::call(_object, PythonQtMethodInfo const, void, bool) + 218
40 libPythonQt.dylib 0x00000001036cafe0 PythonQtSignalReceiver::qt_metacall(QMetaObject::Call, int, void
) + 176
41 QtCore 0x000000010769e9d6 QMetaObject::activate(QObject, QMetaObject const, int, void*) + 710
42 QtGui 0x0000000107063701 QAbstractButton::clicked(bool) + 49
43 QtGui 0x0000000106d973e0 QAbstractButtonPrivate::emitClicked() + 64
44 QtGui 0x0000000106d9847a QAbstractButtonPrivate::click() + 154
45 QtGui 0x0000000106d986d1 QAbstractButton::mouseReleaseEvent(QMouseEvent
) + 113
46 libPythonQt.dylib 0x000000010388e61c PythonQtShell_QPushButton::mouseReleaseEvent(QMouseEvent) + 236
47 QtGui 0x0000000106a6f970 QWidget::event(QEvent
) + 2384
48 QtGui 0x0000000106d975e8 QAbstractButton::event(QEvent) + 40
49 QtGui 0x0000000106e2e745 QPushButton::event(QEvent
) + 69
50 libPythonQt.dylib 0x000000010389fdac PythonQtShell_QPushButton::event(QEvent) + 300
51 QtGui 0x0000000106a1887d QApplicationPrivate::notify_helper(QObject
, QEvent) + 189
52 QtGui 0x0000000106a1f040 QApplication::notify(QObject
, QEvent) + 2416
53 QtCore 0x000000010769823c QCoreApplication::notifyInternal(QObject
, QEvent) + 124
54 QtGui 0x0000000106a17d7c qt_sendSpontaneousEvent(QObject
, QEvent) + 44
55 QtGui 0x00000001069cf49d qt_mac_handleMouseEvent(void
, void*, QEvent::Type, Qt::MouseButton) + 2269
56 QtGui 0x00000001069bfbe6 -[QCocoaView mouseUp:] + 22
57 com.apple.AppKit 0x00007fff87e816d6 -[NSWindow sendEvent:] + 7053
58 QtGui 0x00000001069c6fb1 -[QCocoaWindow sendEvent:] + 241
59 com.apple.AppKit 0x00007fff87e7d744 -[NSApplication sendEvent:] + 5761
60 QtGui 0x00000001069ca62a -[QNSApplication sendEvent:] + 74
61 com.apple.AppKit 0x00007fff87d932fa -[NSApplication run] + 636
62 QtGui 0x00000001069d4324 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
63 QtCore 0x0000000107782ed4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
64 QtCore 0x00000001077831f4 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
65 QtCore 0x00000001077845aa QCoreApplication::exec() + 186
66 0x000000010001faa8 main + 3016
67 0x000000010001ed68 start + 52

jcfr

jcfr

2012-11-19 06:37

administrator   ~0007309

Last week, I asked Julien to review the commit. I should hear back from him soon. Will then integrate into 4.2.2.

jcfr

jcfr

2012-11-19 13:24

administrator   ~0007326

Fixed qMRMLNodeFactoryTest1 test - See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=21452

nicole

nicole

2012-11-23 06:58

administrator   ~0007352

Final final RSNA versions of the brain atlas file uploaded to Midas.
Nightly:
http://slicer.kitware.com/midas3/download?items=10937
(no change for the AtlasTests.py file, new revision of that item)
4.2:
http://slicer.kitware.com/midas3/download?items=11426
This version:

  • cuts down the number of view and camera nodes in each scene view to 1 each.
  • turns off backface culling on model Model_120 vtkMRMLModelDisplayNode169
  • turn off thresholding on volume A1_grayT1
  • fixes the model that was missing from the top level scene but was in scene views (Model_24_third_ventricle)
jcfr

jcfr

2012-11-24 08:02

administrator   ~0007360

Excellent.
Is there anything to update on the 4.2 branch ?

nicole

nicole

2012-11-26 05:35

administrator   ~0007366

No update to the 4.2 branch needed, I uploaded a new revision of the mrb, the url didn't change.

finetjul

finetjul

2013-07-15 07:46

administrator   ~0009051

Fixed in r21354

jcfr

jcfr

2014-03-06 05:18

administrator   ~0011115

Closing resolved issues that have not been updated in more than 3 months

Issue History

Date Modified Username Field Change
2012-09-13 11:48 jcfr New Issue
2012-09-13 12:00 jcfr Target Version => Slicer 4.2.0 - coming release
2012-09-13 12:04 jcfr Status new => assigned
2012-09-13 12:04 jcfr Assigned To => nicole
2012-09-18 11:30 nicole Note Added: 0006128
2012-09-19 15:04 nicole Relationship added parent of 0002538
2012-10-09 13:26 nicole Note Added: 0006482
2012-10-14 18:00 finetjul Relationship added related to 0002514
2012-10-23 14:45 nicole Note Added: 0006711
2012-10-23 15:38 nicole Note Added: 0006712
2012-10-26 17:11 nicole Note Added: 0006825
2012-10-30 10:42 nicole Note Added: 0006915
2012-10-30 14:49 nicole Note Added: 0006945
2012-10-30 15:52 jcfr Note Added: 0006950
2012-10-30 15:53 nicole Note Added: 0006951
2012-10-31 11:35 jcfr Status assigned => resolved
2012-10-31 11:35 jcfr Fixed in Version => Slicer 4.2.0 - coming release
2012-10-31 11:35 jcfr Resolution open => fixed
2012-10-31 11:37 jcfr Note Added: 0006985
2012-11-07 07:58 pieper Note Added: 0007098
2012-11-07 08:00 pieper Assigned To nicole => finetjul
2012-11-07 08:00 pieper Priority normal => high
2012-11-07 08:00 pieper Severity minor => crash
2012-11-07 08:00 pieper Status resolved => confirmed
2012-11-07 08:00 pieper Resolution fixed => reopened
2012-11-07 08:00 pieper Fixed in Version Slicer 4.2.0 =>
2012-11-07 08:00 pieper Target Version Slicer 4.2.0 => Slicer 4.2.1
2012-11-12 09:54 nicole Note Added: 0007164
2012-11-12 11:32 jcfr Note Added: 0007165
2012-11-12 11:41 nicole Note Added: 0007166
2012-11-12 14:18 nicole Note Added: 0007172
2012-11-12 15:13 nicole Note Added: 0007173
2012-11-14 06:16 pieper Relationship added related to 0002512
2012-11-14 06:19 pieper Note Added: 0007207
2012-11-14 06:43 jcfr Note Added: 0007211
2012-11-14 06:53 pieper Note Added: 0007215
2012-11-14 13:31 pieper Note Added: 0007225
2012-11-14 13:51 jcfr Note Added: 0007226
2012-11-14 14:49 pieper Note Added: 0007229
2012-11-15 08:59 pieper Note Added: 0007250
2012-11-15 12:54 pieper Note Added: 0007252
2012-11-15 12:54 pieper Status confirmed => resolved
2012-11-15 12:54 pieper Fixed in Version => Slicer 4.2.1
2012-11-15 12:54 pieper Resolution reopened => fixed
2012-11-17 10:10 pieper Note Added: 0007303
2012-11-17 10:10 pieper Status resolved => feedback
2012-11-17 10:10 pieper Resolution fixed => reopened
2012-11-17 10:11 pieper Status feedback => assigned
2012-11-17 10:11 pieper Fixed in Version Slicer 4.2.1 =>
2012-11-17 10:11 pieper Target Version Slicer 4.2.1 => Slicer 4.3.0
2012-11-19 06:37 jcfr Note Added: 0007309
2012-11-19 13:24 jcfr Note Added: 0007326
2012-11-23 06:58 nicole Note Added: 0007352
2012-11-24 08:02 jcfr Note Added: 0007360
2012-11-26 05:35 nicole Note Added: 0007366
2013-07-15 07:46 finetjul Note Added: 0009051
2013-07-15 07:46 finetjul Status assigned => resolved
2013-07-15 07:46 finetjul Fixed in Version => Slicer 4.3.0
2013-07-15 07:46 finetjul Resolution reopened => fixed
2014-03-06 05:18 jcfr Note Added: 0011115
2014-03-06 05:19 jcfr Status resolved => closed