View Issue Details

IDProjectCategoryView StatusLast Update
0002496Slicer4Module Annotationspublic2017-06-07 23:27
Reporterfedorov Assigned Tojcfr  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.2.0Fixed in VersionSlicer 4.2.0 
Summary0002496: Ruler is not usable in CompareViews
Description

Trying to place a ruler in CompareViews is either not working (no ruler shows up), or if the ruler shows up, Slicer crashes when you try to move the endpoints. Reproducible with MR brain tumor sample data and 2-row compare view.

Additional Information

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libvtkRendering.5.10.dylib 0x000000010661a562 vtkRenderer::ViewToWorld(double&, double&, double&) + 50
1 libvtkFiltering.5.10.dylib 0x000000010ac9eb68 vtkCoordinate::GetComputedWorldValue(vtkViewport) + 744
2 libvtkWidgets.5.10.dylib 0x0000000105a5e0b5 vtkPointPlacer::ComputeWorldPosition(vtkRenderer
, double, double, double) + 101
3 libvtkWidgets.5.10.dylib 0x0000000105a10ea8 vtkHandleRepresentation::SetDisplayPosition(double
) + 136
4 libvtkWidgets.5.10.dylib 0x0000000105a5a95f vtkPointHandleRepresentation2D::SetDisplayPosition(double) + 31
5 libvtkWidgets.5.10.dylib 0x0000000105a0b7be vtkDistanceRepresentation2D::SetPoint1DisplayPosition(double
) + 30
6 ...icerAnnotationsModule.dylib 0x000000012b02b58b vtkMRMLAnnotationRulerDisplayableManager::UpdatePosition(vtkAbstractWidget, vtkMRMLNode) + 1819
7 ...icerAnnotationsModule.dylib 0x000000012b02d4dd vtkMRMLAnnotationRulerDisplayableManager::PropagateMRMLToWidget(vtkMRMLAnnotationNode, vtkAbstractWidget) + 1869
8 ...icerAnnotationsModule.dylib 0x000000012b02124c vtkMRMLAnnotationDisplayableManager::OnMRMLSliceNodeModifiedEvent(vtkMRMLSliceNode) + 460
9 ...icerAnnotationsModule.dylib 0x000000012b01dcc8 vtkMRMLAnnotationDisplayableManager::OnMRMLAnnotationNodeModifiedEvent(vtkMRMLNode
) + 104
10 libMRMLLogic.dylib 0x000000010311d015 vtkMRMLAbstractLogic::MRMLNodesCallback(vtkObject, unsigned long, void, void) + 85
11 libvtkCommon.5.10.dylib 0x000000010b070551 vtkCallbackCommand::Execute(vtkObject
, unsigned long, void) + 33
12 libMRMLCore.dylib 0x00000001054b1173 vtkEventBroker::InvokeObservation(vtkObservation
, void) + 307
13 libMRMLCore.dylib 0x00000001054b16ef vtkEventBroker::ProcessEvent(vtkObservation
, vtkObject, unsigned long, void) + 767
14 libvtkCommon.5.10.dylib 0x000000010b070551 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 33
15 libvtkCommon.5.10.dylib 0x000000010b0597f7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
16 ...AnnotationsModuleMRML.dylib 0x0000000125775468 vtkMRMLAnnotationControlPointsNode::Modified() + 104
17 ...icerAnnotationsModule.dylib 0x000000012b02bac5 vtkMRMLAnnotationRulerDisplayableManager::PropagateWidgetToMRML(vtkAbstractWidget, vtkMRMLAnnotationNode) + 1285
18 ...icerAnnotationsModule.dylib 0x000000012b02e241 vtkAnnotationRulerWidgetCallback::Execute(vtkObject, unsigned long, void) + 433
19 libvtkCommon.5.10.dylib 0x000000010b0597f7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
20 libvtkCommon.5.10.dylib 0x000000010b0597f7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
21 libvtkWidgets.5.10.dylib 0x0000000105a11da3 vtkHandleWidget::MoveAction(vtkAbstractWidget) + 275
22 libvtkCommon.5.10.dylib 0x000000010b070551 vtkCallbackCommand::Execute(vtkObject
, unsigned long, void) + 33
23 libvtkCommon.5.10.dylib 0x000000010b0597f7 vtkSubjectHelper::InvokeEvent(unsigned long, void
, vtkObject) + 1303
24 libvtkWidgets.5.10.dylib 0x0000000105a0998d vtkDistanceWidget::MoveAction(vtkAbstractWidget
) + 45
25 libvtkCommon.5.10.dylib 0x000000010b070551 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 33
26 libvtkCommon.5.10.dylib 0x000000010b059749 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1129
27 libQVTK.5.10.dylib 0x0000000101364dd4 QVTKInteractorAdapter::ProcessEvent(QEvent, vtkRenderWindowInteractor) + 1684
28 libQVTK.5.10.dylib 0x0000000101365d77 QVTKWidget::mouseMoveEvent(QMouseEvent) + 55
29 QtGui 0x0000000106a8f9ac QWidget::event(QEvent
) + 2444
30 libQVTK.5.10.dylib 0x0000000101366a89 QVTKWidget::event(QEvent) + 89
31 QtGui 0x0000000106a3887d QApplicationPrivate::notify_helper(QObject
, QEvent) + 189
32 QtGui 0x0000000106a3f040 QApplication::notify(QObject
, QEvent) + 2416
33 QtCore 0x00000001076b823c QCoreApplication::notifyInternal(QObject
, QEvent) + 124
34 QtGui 0x0000000106a37d7c qt_sendSpontaneousEvent(QObject
, QEvent) + 44
35 QtGui 0x00000001069ef49d qt_mac_handleMouseEvent(void
, void*, QEvent::Type, Qt::MouseButton) + 2269
36 com.apple.AppKit 0x00007fff82ecf0c7 -[NSWindow sendEvent:] + 8769
37 QtGui 0x00000001069e6fb1 -[QCocoaWindow sendEvent:] + 241
38 com.apple.AppKit 0x00007fff82e03afa -[NSApplication sendEvent:] + 4719
39 QtGui 0x00000001069ea62a -[QNSApplication sendEvent:] + 74
40 com.apple.AppKit 0x00007fff82d9a6de -[NSApplication run] + 474
41 QtGui 0x00000001069f4324 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
42 QtCore 0x00000001077a2ed4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
43 QtCore 0x00000001077a31f4 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
44 QtCore 0x00000001077a45aa QCoreApplication::exec() + 186
45 0x00000001000229b2 main + 3362
46 0x000000010001e548 start + 52

TagsNo tags attached.

Relationships

related to 0002663 closednicole Cannot put down fiducials on windows 

Activities

jcfr

jcfr

2012-10-16 12:33

administrator   ~0006581

Steve reported he couldn't reproduce the issue. (Slicer r21176)

fedorov

fedorov

2012-10-16 20:13

developer   ~0006588

I can reproduce with Oct 16 nightly:

1) download MR tumor 1 and 2 from sample data
2) switch to 2-view compare layout
3) select one image in first, second in second
4) link views
5) try to place the ruler

Crash stack:

Thread 0 Crashed: Dispatch queue: com.apple.main-thread
0 libvtkWidgets.5.10.dylib 0x0000000105a8ae77 vtkDistanceRepresentation::InstantiateHandleRepresentation() + 23
1 libvtkWidgets.5.10.dylib 0x0000000105a89e61 vtkDistanceWidget::SetWidgetStateToManipulate() + 49
2 ...RMLDisplayableManager.dylib 0x000000012c47cb5d vtkMRMLAnnotationRulerDisplayableManager::CreateWidget(vtkMRMLAnnotationNode) + 829
3 ...RMLDisplayableManager.dylib 0x000000012c48a649 vtkMRMLAnnotationDisplayableManager::OnMRMLSceneNodeAdded(vtkMRMLNode
) + 1033
4 libMRMLLogic.dylib 0x00000001031970c7 vtkMRMLAbstractLogic::MRMLSceneCallback(vtkObject, unsigned long, void, void) + 103
5 libvtkCommon.5.10.dylib 0x000000010b18f551 vtkCallbackCommand::Execute(vtkObject
, unsigned long, void) + 33
6 libMRMLCore.dylib 0x000000010552f5a3 vtkEventBroker::InvokeObservation(vtkObservation
, void) + 307
7 libMRMLCore.dylib 0x000000010552fb1f vtkEventBroker::ProcessEvent(vtkObservation
, vtkObject, unsigned long, void) + 767
8 libvtkCommon.5.10.dylib 0x000000010b18f551 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 33
9 libvtkCommon.5.10.dylib 0x000000010b1787f7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
10 libMRMLCore.dylib 0x00000001056011ee vtkMRMLScene::AddNode(vtkMRMLNode) + 286
11 ...AnnotationsModuleMRML.dylib 0x00000001271f74d5 vtkMRMLAnnotationNode::Initialize(vtkMRMLScene
) + 69
12 ...AnnotationsModuleMRML.dylib 0x0000000127203651 vtkMRMLAnnotationControlPointsNode::Initialize(vtkMRMLScene) + 81
13 ...AnnotationsModuleMRML.dylib 0x000000012720a636 vtkMRMLAnnotationLinesNode::Initialize(vtkMRMLScene
) + 102
14 ...RMLDisplayableManager.dylib 0x000000012c47c7fa vtkMRMLAnnotationRulerDisplayableManager::OnClickInRenderWindow(double, double, char const) + 730
15 ...RMLDisplayableManager.dylib 0x000000012c488c1c vtkMRMLAnnotationDisplayableManager::OnClickInRenderWindowGetCoordinates() + 412
16 ...RMLDisplayableManager.dylib 0x000000012c488fd6 vtkMRMLAnnotationDisplayableManager::OnInteractorStyleEvent(int) + 118
17 libvtkCommon.5.10.dylib 0x000000010b18f551 vtkCallbackCommand::Execute(vtkObject
, unsigned long, void) + 33
18 libvtkCommon.5.10.dylib 0x000000010b1787f7 vtkSubjectHelper::InvokeEvent(unsigned long, void
, vtkObject) + 1303
19 libvtkRendering.5.10.dylib 0x0000000106621f55 vtkInteractorStyleUser::OnLeftButtonUp() + 181
20 libvtkRendering.5.10.dylib 0x000000010660f559 vtkInteractorStyle::ProcessEvents(vtkObject
, unsigned long, void, void) + 1433
21 libvtkCommon.5.10.dylib 0x000000010b18f551 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 33
22 libvtkCommon.5.10.dylib 0x000000010b1787f7 vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 1303
23 libQVTK.5.10.dylib 0x00000001013dbacb QVTKInteractorAdapter::ProcessEvent(QEvent, vtkRenderWindowInteractor) + 907
24 libQVTK.5.10.dylib 0x00000001013dcd17 QVTKWidget::mouseReleaseEvent(QMouseEvent) + 55
25 QtGui 0x0000000106b0f970 QWidget::event(QEvent
) + 2384
26 libQVTK.5.10.dylib 0x00000001013dda89 QVTKWidget::event(QEvent) + 89
27 QtGui 0x0000000106ab887d QApplicationPrivate::notify_helper(QObject
, QEvent) + 189
28 QtGui 0x0000000106abf040 QApplication::notify(QObject
, QEvent) + 2416
29 QtCore 0x000000010773823c QCoreApplication::notifyInternal(QObject
, QEvent) + 124
30 QtGui 0x0000000106ab7d7c qt_sendSpontaneousEvent(QObject
, QEvent) + 44
31 QtGui 0x0000000106a6f49d qt_mac_handleMouseEvent(void
, void*, QEvent::Type, Qt::MouseButton) + 2269
32 QtGui 0x0000000106a5fbe6 -[QCocoaView mouseUp:] + 22
33 com.apple.AppKit 0x00007fff82ece431 -[NSWindow sendEvent:] + 5547
34 QtGui 0x0000000106a66fb1 -[QCocoaWindow sendEvent:] + 241
35 com.apple.AppKit 0x00007fff82e03afa -[NSApplication sendEvent:] + 4719
36 QtGui 0x0000000106a6a62a -[QNSApplication sendEvent:] + 74
37 com.apple.AppKit 0x00007fff82d9a6de -[NSApplication run] + 474
38 QtGui 0x0000000106a74324 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1588
39 QtCore 0x0000000107822ed4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
40 QtCore 0x00000001078231f4 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 180
41 QtCore 0x00000001078245aa QCoreApplication::exec() + 186
42 0x0000000100021048 main + 3016
43 0x000000010001ea68 start + 52

jcfr

jcfr

2012-10-18 16:25

administrator   ~0006631

Fixed in r21215
See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&amp;revision=21215

jcfr

jcfr

2017-06-07 23:27

administrator   ~0014542

Fix committed to 1683-launcher-with-output branch.

Related Changesets

Slicer: 1683-launcher-with-output 132bb20a

2012-10-18 20:21:07

jcfr

Details Diff
BUG: Ensure ruler widget is properly created when switching to compare view

In the case of the annotation displayable manager, calling "SetMRMLScene"
ended up calling OnMRMLSceneClose -> RequestRender -> UpdateFromMRML -> CreateWidget.
Then, since MRMLDisplayableNode wasn't set, code expecting it to be set
wasn't behaving as expected. (ie Is2DDisplayableManager was returning false)

Since the call to "vtkSetAndObserveMRMLNodeEventsMacro" was no impact
beyond the current class, switching the call "vtkSetAndObserveMRMLNodeEventsMacro"
and "SetMRMLScene" will have no unexpected impact on subclass or code
depending on the displayable manager.

See http://www.na-mic.org/Bug/view.php?id=2496

Fixes 0002496

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21215 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Libs/MRML/DisplayableManager/vtkMRMLAbstractDisplayableManager.cxx Diff File

Issue History

Date Modified Username Field Change
2012-09-11 14:29 fedorov New Issue
2012-09-11 14:29 fedorov Status new => assigned
2012-09-11 14:29 fedorov Assigned To => nicole
2012-09-20 12:25 nicole Target Version => Slicer 4.2.0 - coming release
2012-10-16 12:33 jcfr Note Added: 0006581
2012-10-16 12:33 jcfr Status assigned => feedback
2012-10-16 12:33 jcfr Status feedback => resolved
2012-10-16 12:33 jcfr Fixed in Version => Slicer 4.2.0 - coming release
2012-10-16 12:33 jcfr Resolution open => fixed
2012-10-16 20:13 fedorov Note Added: 0006588
2012-10-16 20:13 fedorov Status resolved => feedback
2012-10-16 20:13 fedorov Resolution fixed => reopened
2012-10-18 12:09 pieper Relationship added related to 0002663
2012-10-18 16:25 jcfr Note Added: 0006631
2012-10-18 16:25 jcfr Status feedback => resolved
2012-10-18 16:25 jcfr Resolution reopened => fixed
2012-10-18 19:36 fedorov Status resolved => closed
2017-06-07 23:27 jcfr Changeset attached => Slicer 1683-launcher-with-output 132bb20a
2017-06-07 23:27 jcfr Note Added: 0014542
2017-06-07 23:27 jcfr Assigned To nicole => jcfr