View Issue Details

IDProjectCategoryView StatusLast Update
0003162Slicer4Core: Base Codepublic2018-03-02 11:02
Reporterpieper Assigned Topieper  
PrioritynormalSeveritycrashReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionFixed in VersionSlicer 4.7.0 
Summary0003162: crash estimating window/level for brainlab export files
Description

Some brainlab files represent segmentations in high order bits of the volume. This can lead to pixels with a value of 2^16 and that leads to wraparound in Libs/MRML/Core/vtkImageBimodalAnalysis.cxx.

Steps To Reproduce

I can't share the actual sample data right now, but will see if I can get a shareable dataset.

TagsNo tags attached.

Activities

pieper

pieper

2013-06-12 06:32

administrator   ~0008754

See :

https://github.com/pieper/Slicer/commit/ef29d5bebb3a8c99fa26dd1e69ca12d6d7acbd12

pieper

pieper

2013-06-12 06:34

administrator   ~0008755

Here is the stack when trying to load one of these files:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libMRMLCore.dylib 0x000000011047aa14 void vtkImageBimodalAnalysisExecute<int>(vtkImageBimodalAnalysis, vtkImageData, int, vtkImageData, float) + 500 (vtkImageBimodalAnalysis.cxx:88)
1 libMRMLCore.dylib 0x0000000110478332 vtkImageBimodalAnalysis::ExecuteData(vtkDataObject
) + 1762 (vtkImageBimodalAnalysis.cxx:274)
2 libvtkFiltering.5.10.dylib 0x000000011fbb3cb2 vtkSource::ProcessRequest(vtkInformation*, vtkInformationVector, vtkInformationVector) + 5682 (vtkSource.cxx:670)
3 libvtkFiltering.5.10.dylib 0x000000011f94f524 vtkExecutive::CallAlgorithm(vtkInformation
, int, vtkInformationVector
, vtkInformationVector) + 164 (vtkExecutive.cxx:747)
4 libvtkFiltering.5.10.dylib 0x000000011f93038a vtkDemandDrivenPipeline::ExecuteData(vtkInformation
, vtkInformationVector, vtkInformationVector) + 154 (vtkDemandDrivenPipeline.cxx:506)
5 libvtkFiltering.5.10.dylib 0x000000011f92f63b vtkDemandDrivenPipeline::ProcessRequest(vtkInformation
, vtkInformationVector
, vtkInformationVector) + 1515 (vtkDemandDrivenPipeline.cxx:279)
6 libvtkFiltering.5.10.dylib 0x000000011fbbb332 vtkStreamingDemandDrivenPipeline::ProcessRequest(vtkInformation
, vtkInformationVector, vtkInformationVector) + 2146 (vtkStreamingDemandDrivenPipeline.cxx:276)
7 libvtkFiltering.5.10.dylib 0x000000011f9300b3 vtkDemandDrivenPipeline::UpdateData(int) + 1091 (vtkDemandDrivenPipeline.cxx:449)
8 libvtkFiltering.5.10.dylib 0x000000011fbbb600 vtkStreamingDemandDrivenPipeline::Update(int) + 240 (vtkStreamingDemandDrivenPipeline.cxx:326)
9 libvtkFiltering.5.10.dylib 0x000000011fbb09b1 vtkSource::Update() + 81 (vtkSource.cxx:136)
10 libMRMLCore.dylib 0x0000000110623c67 vtkMRMLScalarVolumeDisplayNode::CalculateAutoLevels() + 1703 (vtkMRMLScalarVolumeDisplayNode.cxx:738)
11 libMRMLCore.dylib 0x0000000110623304 vtkMRMLScalarVolumeDisplayNode::ProcessMRMLEvents(vtkObject
, unsigned long, void) + 228 (vtkMRMLScalarVolumeDisplayNode.cxx:401)
12 libMRMLCore.dylib 0x00000001105fd43b vtkMRMLNode::MRMLCallback(vtkObject
, unsigned long, void, void) + 1035 (vtkMRMLNode.cxx:647)
13 libvtkCommon.5.10.dylib 0x000000012028ca04 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 84 (vtkCallbackCommand.cxx:43)
14 libMRMLCore.dylib 0x000000011046517f vtkEventBroker::InvokeObservation(vtkObservation, unsigned long, void) + 255 (vtkEventBroker.cxx:872)
15 libMRMLCore.dylib 0x00000001104649dc vtkEventBroker::ProcessEvent(vtkObservation, vtkObject, unsigned long, void) + 188 (vtkEventBroker.cxx:717)
16 libMRMLCore.dylib 0x0000000110465adb vtkEventBroker::Callback(vtkObject
, unsigned long, void, void) + 507 (vtkEventBroker.cxx:944)
17 libvtkCommon.5.10.dylib 0x000000012028ca04 vtkCallbackCommand::Execute(vtkObject, unsigned long, void) + 84 (vtkCallbackCommand.cxx:43)
18 libvtkCommon.5.10.dylib 0x000000012039840c vtkSubjectHelper::InvokeEvent(unsigned long, void, vtkObject) + 2460 (vtkObject.cxx:620)
19 libvtkCommon.5.10.dylib 0x00000001203989b2 vtkObject::InvokeEvent(unsigned long, void) + 66 (vtkObject.cxx:789)
20 libvtkCommon.5.10.dylib 0x0000000120398b92 vtkObject::Modified() + 66 (vtkObject.cxx:856)
21 libMRMLCLI.dylib 0x000000011035d104 vtkMRMLNode::Modified() + 52 (vtkMRMLNode.h:358)
22 libMRMLCore.dylib 0x00000001106e7fc2 vtkMRMLVolumeDisplayNode::SetInputImageData(vtkImageData
) + 82 (vtkMRMLVolumeDisplayNode.cxx:109)
23 libMRMLCore.dylib 0x0000000110620a9e vtkMRMLScalarVolumeDisplayNode::SetInputImageData(vtkImageData) + 142 (vtkMRMLScalarVolumeDisplayNode.cxx:160)
24 libMRMLCore.dylib 0x00000001106f4b84 vtkMRMLVolumeNode::SetAndObserveImageData(vtkImageData
) + 212 (vtkMRMLVolumeNode.cxx:640)
25 libMRMLCore.dylib 0x00000001106dc3ff vtkMRMLVolumeArchetypeStorageNode::ReadDataInternal(vtkMRMLNode) + 13487 (vtkMRMLVolumeArchetypeStorageNode.cxx:436)
26 libMRMLCore.dylib 0x0000000110692323 vtkMRMLStorageNode::ReadData(vtkMRMLNode
, bool) + 2995 (vtkMRMLStorageNode.cxx:1089)
27 libvtkSlicerVolumesModuleLogic.dylib 0x000000012b445076 vtkSlicerVolumesLogic::AddArchetypeVolume(std::list<ArchetypeVolumeNodeSet ()(std::string&, vtkMRMLScene, int), std::allocator<ArchetypeVolumeNodeSet ()(std::string&, vtkMRMLScene, int)> > const&, char const, char const, int, vtkStringArray) + 2166 (vtkSlicerVolumesLogic.cxx:535)
28 libvtkSlicerVolumesModuleLogic.dylib 0x000000012b4447f9 vtkSlicerVolumesLogic::AddArchetypeVolume(char const
, char const, int, vtkStringArray) + 73 (vtkSlicerVolumesLogic.cxx:472)
29 libqSlicerVolumesModule.dylib 0x000000013184f161 qSlicerVolumesIO::load(QMap<QString, QVariant> const&) + 3921 (qSlicerVolumesIO.cxx:157)
30 libqSlicerBaseQTCore.dylib 0x0000000109ac0bfa qSlicerCoreIOManager::loadNodes(QString const&, QMap<QString, QVariant> const&, vtkCollection) + 3258 (qSlicerCoreIOManager.cxx:329)
31 libqSlicerBaseQTGUI.dylib 0x0000000108c9d7db qSlicerIOManager::loadNodes(QString const&, QMap<QString, QVariant> const&, vtkCollection
) + 491 (qSlicerIOManager.cxx:387)
32 libqSlicerBaseQTCore.dylib 0x0000000109ac0604 qSlicerCoreIOManager::loadNodes(QString const&, QMap<QString, QVariant> const&, vtkCollection) + 1732 (qSlicerCoreIOManager.cxx:307)
33 libqSlicerBaseQTGUI.dylib 0x0000000108c9d7db qSlicerIOManager::loadNodes(QString const&, QMap<QString, QVariant> const&, vtkCollection
) + 491 (qSlicerIOManager.cxx:387)
34 libqSlicerBaseQTGUI.dylib 0x0000000108c9d988 qSlicerIOManager::loadNodes(QList<QMap<QString, QVariant> > const&, vtkCollection) + 360 (qSlicerIOManager.cxx:407)
35 libqSlicerBaseQTGUI.dylib 0x0000000108c8e485 qSlicerDataDialog::exec(QMap<QString, QVariant> const&) + 1285 (qSlicerDataDialog.cxx:429)
36 libqSlicerBaseQTGUI.dylib 0x0000000108c9c69e qSlicerIOManager::openDialog(QString, qSlicerFileDialog::IOAction, QMap<QString, QVariant>) + 974 (qSlicerIOManager.cxx:240)
37 libqSlicerApp.dylib 0x000000010891e00c qSlicerIOManager::openAddDataDialog() + 76 (qSlicerIOManager.h:123)
38 libqSlicerApp.dylib 0x000000010891c4a1 qSlicerAppMainWindowCore::onFileLoadDataActionTriggered() + 33 (qSlicerAppMainWindowCore.cxx:149)
39 libqSlicerApp.dylib 0x000000010891fa15 qSlicerAppMainWindowCore::qt_static_metacall(QObject
, QMetaObject::Call, int, void
) + 165 (moc_qSlicerAppMainWindowCore.cxx:102)
40 QtCore 0x00000001145a5fae QMetaObject::activate(QObject, QMetaObject const, int, void*) + 1566
41 QtGui 0x000000011379c391 QAction::triggered(bool) + 49
42 QtGui 0x000000011379d724 QAction::activate(QAction::ActionEvent) + 180
43 QtGui 0x0000000113b46fa9 QAbstractButtonPrivate::click() + 89
44 QtGui 0x0000000113b47241 QAbstractButton::mouseReleaseEvent(QMouseEvent
) + 113
45 QtGui 0x0000000113c152a2 QToolButton::mouseReleaseEvent(QMouseEvent) + 18
46 QtGui 0x00000001137fa761 QWidget::event(QEvent
) + 2369
47 QtGui 0x0000000113b46038 QAbstractButton::event(QEvent) + 40
48 QtGui 0x0000000113c176af QToolButton::event(QEvent
) + 63
49 QtGui 0x00000001137a294d QApplicationPrivate::notify_helper(QObject, QEvent) + 189
50 QtGui 0x00000001137a94f0 QApplication::notify(QObject, QEvent) + 2384
51 QtCore 0x000000011458db9c QCoreApplication::notifyInternal(QObject, QEvent) + 124
52 QtGui 0x00000001137a6f3d QApplicationPrivate::sendMouseEvent(QWidget, QMouseEvent, QWidget, QWidget, QWidget, QPointer<QWidget>&, bool) + 333
53 QtGui 0x00000001137569eb qt_mac_handleMouseEvent(NSEvent, QEvent::Type, Qt::MouseButton, QWidget, bool) + 779
54 com.apple.AppKit 0x00007fff91b4b606 -[NSWindow sendEvent:] + 7053
55 QtGui 0x000000011374ba77 -[QCocoaWindow sendEvent:] + 87
56 com.apple.AppKit 0x00007fff91b47674 -[NSApplication sendEvent:] + 5761
57 QtGui 0x0000000113750b64 -[QNSApplication sendEvent:] + 84
58 com.apple.AppKit 0x00007fff91a5d24a -[NSApplication run] + 636
59 QtGui 0x000000011375b9a0 QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 1824
60 QtCore 0x000000011458caa4 QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 68
61 QtCore 0x000000011458ce54 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 324
62 QtCore 0x000000011458f53c QCoreApplication::exec() + 188
63 0x00000001088bf846 (anonymous namespace)::SlicerAppMain(int, char
) + 4150
64 0x00000001088be802 main + 34
65 0x00000001088be7d4 start + 52

lassoan

lassoan

2017-06-10 01:04

developer   ~0014725

This issue has been fixed recently.

Issue History

Date Modified Username Field Change
2013-06-12 06:29 pieper New Issue
2013-06-12 06:29 pieper Status new => assigned
2013-06-12 06:29 pieper Assigned To => pieper
2013-06-12 06:32 pieper Note Added: 0008754
2013-06-12 06:34 pieper Note Added: 0008755
2014-05-13 12:52 jcfr Status assigned => acknowledged
2017-06-10 01:04 lassoan Status acknowledged => resolved
2017-06-10 01:04 lassoan Resolution open => fixed
2017-06-10 01:04 lassoan Fixed in Version => Slicer 4.7.0
2017-06-10 01:04 lassoan Note Added: 0014725
2018-03-02 11:02 jcfr Status resolved => closed