View Issue Details

IDProjectCategoryView StatusLast Update
0002409Slicer4Core: Base Codepublic2012-09-05 03:44
Reporterlassoan Assigned Topieper  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.2.0Fixed in VersionSlicer 4.2.0 
Summary0002409: Crash when deselecting labelmap option for an active labelmap volume
Description

Slier crashes when deselecting labelmap option for a volume that is selected as labelmap layer in a slice viewer.

How to reproduce:
-Download "MRHead" sample data twice => MRHead and MRHead_1 volumes are created, MRHead_1 is shown in the slice viewers
-In the volume module check the "LabelMap" option for the MRHead volume
-Select the MRHead volume as labelmap volume in a slice viewer
-In the volume module uncheck the "LabelMap" option for the MRHead volume
=> Slicer crashes

TagsNo tags attached.

Activities

finetjul

finetjul

2012-08-20 06:50

administrator   ~0005568

Can't reproduce with r20789 on Linux Ubuntu 10.04 LTS - the Lucid Lynx

pieper

pieper

2012-08-20 07:15

administrator   ~0005569

I could not replicate this either (windows 7, visual studio 2008).

Does it happen on the nightly build?

lassoan

lassoan

2012-08-20 07:28

developer   ~0005570

It happens with the nightly build, but it seems that it's related to some of our own modules. I investigate it more and report here if there is any fix needed in the Slicer core.

lassoan

lassoan

2012-08-20 08:04

developer   ~0005576

After some more testing: it's not related to any custom modules, it's reproducible with the latest nightly build (Slicer-4.1.0-2012-08-18-win-amd64), but the crash may not happen always exactly the same way: sometimes it just hangs, sometimes it crashes almost immediately; sometimes you need to repeat the steps described above to reproduce the issue.

See a sample screencast (with the latest nightly build, without any custom extension, module, or setting, on Win7 64-bit):
http://screencast.com/t/wMoNWUijmOxf

jcfr

jcfr

2012-08-22 05:51

administrator   ~0005686

Issue targeted for 4.2.0, re-target if it can't be addressed by sept 1st.

pieper

pieper

2012-08-22 06:20

administrator   ~0005692

I could not reproduce this after several tries. Have you ever seen it on a debug build or only a release build?

lassoan

lassoan

2012-08-22 06:22

developer   ~0005693

I haven't tried it with debug build.

pieper

pieper

2012-08-22 07:23

administrator   ~0005695

I just tried with a release build (latest nightly) and got the crash on the first try.

But was never able to get it to happen on a windows debug build.

Trying again on a mac debug build.

Okay - got the crash on mac with the following stack trace:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libvtkCommonPythonD.5.10.dylib 0x000000010da6826c vtkCommand::GetPassiveObserver() + 12 (vtkCommand.h:374)
1 libvtkCommon.5.10.dylib 0x000000011b4b5f52 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 2082 (vtkObject.cxx:595)
2 libvtkCommon.5.10.dylib 0x000000011b4b6602 vtkObject::InvokeEvent(unsigned long, void) + 66 (vtkObject.cxx:770)
3 libvtkCommon.5.10.dylib 0x000000011b4b67e2 vtkObject::Modified() + 66 (vtkObject.cxx:837)
4 libMRMLCLI.dylib 0x000000010e419484 vtkMRMLNode::Modified() + 52 (vtkMRMLNode.h:348)
5 libMRMLCore.dylib 0x000000010e576dc1 vtkMRMLDisplayableNode::SetAndObserveNthDisplayNodeID(int, char const
) + 1825 (vtkMRMLDisplayableNode.cxx:326)
6 libMRMLCore.dylib 0x000000010e578205 vtkMRMLDisplayableNode::RemoveNthDisplayNodeID(int) + 37 (vtkMRMLDisplayableNode.h:288)
7 libMRMLCore.dylib 0x000000010e57740a vtkMRMLDisplayableNode::UpdateReferences() + 186 (vtkMRMLDisplayableNode.cxx:187)
8 libMRMLCore.dylib 0x000000010e6bddb4 vtkMRMLScene::RemoveNode(vtkMRMLNode) + 2916 (vtkMRMLScene.cxx:1405)
9 libqMRMLWidgets.dylib 0x00000001059ab422 qMRMLVolumeInfoWidget::setLabelMap(bool) + 210 (qMRMLVolumeInfoWidget.cxx:443)
10 libqMRMLWidgets.dylib 0x00000001059c998e qMRMLVolumeInfoWidget::qt_static_metacall(QObject
, QMetaObject::Call, int, void) + 414 (moc_qMRMLVolumeInfoWidget.cxx:84)
11 QtCore 0x000000011130922e QMetaObject::activate(QObject, QMetaObject const, int, void
) + 1566
12 QtGui 0x0000000110b80411 QAbstractButton::toggled(bool) + 49
13 QtGui 0x00000001108a46ec QAbstractButton::setChecked(bool) + 156
14 QtGui 0x00000001108b7bd5 QCheckBox::nextCheckState() + 85
15 QtGui 0x00000001108a42c9 QAbstractButtonPrivate::click() + 89
16 QtGui 0x00000001108a4561 QAbstractButton::mouseReleaseEvent(QMouseEvent) + 113
17 QtGui 0x0000000110558651 QWidget::event(QEvent
) + 2369
18 QtGui 0x00000001108a3358 QAbstractButton::event(QEvent) + 40
19 QtGui 0x00000001108b7c45 QCheckBox::event(QEvent
) + 53
20 QtGui 0x000000011050093d QApplicationPrivate::notify_helper(QObject, QEvent) + 189
21 QtGui 0x00000001105072f0 QApplication::notify(QObject, QEvent) + 2384
22 QtCore 0x00000001112f117c QCoreApplication::notifyInternal(QObject, QEvent) + 124
23 QtGui 0x000000011050512d QApplicationPrivate::sendMouseEvent(QWidget, QMouseEvent, QWidget, QWidget, QWidget, QPointer<QWidget>&, bool) + 333
24 QtGui 0x00000001104b4985 qt_mac_handleMouseEvent(NSEvent, QEvent::Type, Qt::MouseButton, QWidget) + 741
25 com.apple.AppKit 0x00007fff9959340e -[NSWindow sendEvent:] + 6504
26 QtGui 0x00000001104a9a37 -[QCocoaWindow sendEvent:] + 87
27 com.apple.AppKit 0x00007fff9952ca55 -[NSApplication sendEvent:] + 5593
28 QtGui 0x00000001104aeb24 -[QNSApplication sendEvent:] + 84
29 com.apple.AppKit 0x00007fff994c30c6 -[NSApplication run] + 555
30 QtGui 0x00000001104b9900 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1824
31 QtCore 0x00000001112f0094 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
32 QtCore 0x00000001112f0444 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 324
33 QtCore 0x00000001112f2b2c QCoreApplication::exec() + 188
34 0x000000010537be6b (anonymous namespace)::SlicerAppMain(int, char
) + 4283 (Main.cxx:365)
35 0x000000010537ada2 main + 34 (Main.cxx:397)
36 0x000000010537ad74 start + 52

2012-08-27 10:55

 

labelToggleBug2049.py (9,257 bytes)
pieper

pieper

2012-08-27 10:58

administrator   ~0005810

I was not able to replicate this again - perhaps some other fix took care of the underlying issue.

To make sure we are doing the same thing, please use the attached self test script - put it in a directory and set it as an additional module path in the application settings. After restart you will find the module in Testing->TestCases->labelToggleBug2049 and you can run it with the Reload and Test button.

If you can get it to crash, please report here. If you want, you can edit the python script and reload and test to see if you can identify a sequence of operations that leads to a crash.

-Steve

pieper

pieper

2012-08-27 11:34

administrator   ~0005813

If you can test that this still occurs (either manually or with the script) then I'll look into it some more. Otherwise I will close it and assume it has been fixed.

pieper

pieper

2012-08-27 12:13

administrator   ~0005815

This is also checked in as a ctest (labelToggleBut2409) and as a runtime self test available from the Testing->TestCases menu.

lassoan

lassoan

2012-08-27 12:13

developer   ~0005816

I'm rebuilding Slicer and test it as soon as it's ready.

lassoan

lassoan

2012-09-05 03:40

developer   ~0005968

Seems to be fixed. Cannot reproduce anymore. Tested on Slicer-4.1.0-2012-09-03-win-amd64.exe.

Issue History

Date Modified Username Field Change
2012-08-20 05:18 lassoan New Issue
2012-08-20 05:18 lassoan Status new => assigned
2012-08-20 05:18 lassoan Assigned To => pieper
2012-08-20 06:50 finetjul Note Added: 0005568
2012-08-20 07:15 pieper Note Added: 0005569
2012-08-20 07:28 lassoan Note Added: 0005570
2012-08-20 08:04 lassoan Note Added: 0005576
2012-08-22 05:51 jcfr Target Version => Slicer 4.2.0 - Feature freeze Sept 1st 2012
2012-08-22 05:51 jcfr Note Added: 0005686
2012-08-22 06:20 pieper Note Added: 0005692
2012-08-22 06:22 lassoan Note Added: 0005693
2012-08-22 07:23 pieper Note Added: 0005695
2012-08-27 10:55 pieper File Added: labelToggleBug2049.py
2012-08-27 10:58 pieper Note Added: 0005810
2012-08-27 11:34 pieper Note Added: 0005813
2012-08-27 11:34 pieper Status assigned => feedback
2012-08-27 12:13 pieper Note Added: 0005815
2012-08-27 12:13 lassoan Note Added: 0005816
2012-09-05 03:40 lassoan Note Added: 0005968
2012-09-05 03:44 pieper Status feedback => closed
2012-09-05 03:44 pieper Resolution open => fixed
2012-09-05 03:44 pieper Fixed in Version => Slicer 4.2.0 - Feature freeze Sept 1st 2012